{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [],
   "source": [
    "import cx_Oracle as oracle\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.dates import AutoDateLocator, DateFormatter \n",
    "import numpy as np\n",
    "import math\n",
    "import seaborn as sns\n",
    "import scipy.stats as stats  \n",
    "import copy"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Analyse the feature 1——Peakhour Travel Days of The Month\n",
    "we analyse the peakhour travel days of the month, which means the number of days a vehicle travel to the road network in the peak hour."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "database connected\n",
      "database close\n"
     ]
    }
   ],
   "source": [
    "#该函数用来得到oracle中的表WORKDAY_PEAKHOUR_FREQ中的数据,并存为dataframe,格式与dateframe完全一样\n",
    "db = oracle.connect()    # connect oracle database\n",
    "print(\"database connected\")\n",
    "cursor = db.cursor()    # create cursor\n",
    "cursor.execute('select * from WORKDAY_PEAKHOUR_FREQ')    # execute sql \n",
    "data = cursor.fetchall()    # fetch data\n",
    "df_F1 = pd.DataFrame(data)\n",
    "\n",
    "#change columns' name\n",
    "df_F1.rename(columns={0:'CAR_NUM', 1:'F1_FM' , 2:'F1_FM_RATIO'}, inplace = True)\n",
    "#print(df)\n",
    "cursor.close()   #close the curse\n",
    "db.close()   #close the database\n",
    "print(\"database close\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CAR_NUM</th>\n",
       "      <th>F1_FM</th>\n",
       "      <th>F1_FM_RATIO</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>JL1681T</td>\n",
       "      <td>5</td>\n",
       "      <td>0.238095</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>KL33073</td>\n",
       "      <td>5</td>\n",
       "      <td>0.238095</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>NA15004</td>\n",
       "      <td>1</td>\n",
       "      <td>0.047619</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>NG20270</td>\n",
       "      <td>2</td>\n",
       "      <td>0.095238</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>NH58008</td>\n",
       "      <td>11</td>\n",
       "      <td>0.523810</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   CAR_NUM  F1_FM  F1_FM_RATIO\n",
       "0  JL1681T      5     0.238095\n",
       "1  KL33073      5     0.238095\n",
       "2  NA15004      1     0.047619\n",
       "3  NG20270      2     0.095238\n",
       "4  NH58008     11     0.523810"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# have a look at df_F1\n",
    "df_F1.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>F1_FM</th>\n",
       "      <th>F1_FM_RATIO</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>629586.000000</td>\n",
       "      <td>629586.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>5.490403</td>\n",
       "      <td>0.261448</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>5.360183</td>\n",
       "      <td>0.255247</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.047619</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.047619</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>0.142857</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>9.000000</td>\n",
       "      <td>0.428571</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>21.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               F1_FM    F1_FM_RATIO\n",
       "count  629586.000000  629586.000000\n",
       "mean        5.490403       0.261448\n",
       "std         5.360183       0.255247\n",
       "min         1.000000       0.047619\n",
       "25%         1.000000       0.047619\n",
       "50%         3.000000       0.142857\n",
       "75%         9.000000       0.428571\n",
       "max        21.000000       1.000000"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 从df_F1表中得到常规的统计指标，并绘制成图\n",
    "df_F1.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 将df_F1中的F1_FM_RATIO绘制成直方图和箱型图\n",
    "\n",
    "# 直方图绘制\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']  #显示中文字符\n",
    "plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号\n",
    "# plt.rcParams['savefig.dpi'] = 300 #图片像素\n",
    "#plt.rcParams['figure.dpi'] = 300 #分辨率\n",
    "plt.hist(df_F1['F1_FM_RATIO'], bins=10, range=None, weights=None, cumulative=False, bottom=None,\\\n",
    "         histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False)\n",
    "ax = plt.gca()\n",
    "plt.grid()  \n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "ax.set_xlabel('F1')\n",
    "ax.set_ylabel('Vehicle Number')\n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()\n",
    "\n",
    "# 箱型图绘制\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']  #显示中文字符\n",
    "plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号\n",
    "# plt.rcParams['savefig.dpi'] = 300 #图片像素\n",
    "#plt.rcParams['figure.dpi'] = 300 #分辨率\n",
    "df_F1['F1_FM_RATIO'].plot(kind='box')\n",
    "# axes.set_ylabel('values of tip_pct')\n",
    "ax = plt.gca()\n",
    "plt.grid()  \n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Analyse the feature 2——Travel Days of The Month\n",
    "we analyse the travel days of the month, which means the number of days a vehicle travel to the road network."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "database connected\n",
      "database close\n"
     ]
    }
   ],
   "source": [
    "#该函数用来得到oracle中的表WORKDAY_TRA_FREQ中的数据,并存为dataframe,格式与dateframe完全一样\n",
    "db = oracle.connect()    # connect oracle database\n",
    "print(\"database connected\")\n",
    "cursor = db.cursor()    # create cursor\n",
    "cursor.execute('select * from WORKDAY_TRA_FREQ')    # execute sql \n",
    "data = cursor.fetchall()    # fetch data\n",
    "df_F2 = pd.DataFrame(data)\n",
    "\n",
    "#change columns' name\n",
    "df_F2.rename(columns={0:'CAR_NUM', 1:'F2_FM' , 2:'F2_FM_RATIO'}, inplace = True)\n",
    "#print(df)\n",
    "cursor.close()   #close the curse\n",
    "db.close()   #close the database\n",
    "print(\"database close\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CAR_NUM</th>\n",
       "      <th>F2_FM</th>\n",
       "      <th>F2_FM_RATIO</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>浙A837YS</td>\n",
       "      <td>21</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>浙AR911W</td>\n",
       "      <td>21</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>浙AJ183G</td>\n",
       "      <td>8</td>\n",
       "      <td>0.380952</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>浙A823JG</td>\n",
       "      <td>5</td>\n",
       "      <td>0.238095</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>浙A916KS</td>\n",
       "      <td>21</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   CAR_NUM  F2_FM  F2_FM_RATIO\n",
       "0  浙A837YS     21     1.000000\n",
       "1  浙AR911W     21     1.000000\n",
       "2  浙AJ183G      8     0.380952\n",
       "3  浙A823JG      5     0.238095\n",
       "4  浙A916KS     21     1.000000"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# have a look at df_F2\n",
    "df_F2.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>F2_FM</th>\n",
       "      <th>F2_FM_RATIO</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>3.509489e+06</td>\n",
       "      <td>3.509489e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>4.061308e+00</td>\n",
       "      <td>1.933956e-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>5.330703e+00</td>\n",
       "      <td>2.538430e-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>4.761905e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>4.761905e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>4.761905e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>4.000000e+00</td>\n",
       "      <td>1.904762e-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>2.100000e+01</td>\n",
       "      <td>1.000000e+00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              F2_FM   F2_FM_RATIO\n",
       "count  3.509489e+06  3.509489e+06\n",
       "mean   4.061308e+00  1.933956e-01\n",
       "std    5.330703e+00  2.538430e-01\n",
       "min    1.000000e+00  4.761905e-02\n",
       "25%    1.000000e+00  4.761905e-02\n",
       "50%    1.000000e+00  4.761905e-02\n",
       "75%    4.000000e+00  1.904762e-01\n",
       "max    2.100000e+01  1.000000e+00"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 从df_F2表中得到常规的统计指标，并绘制成图\n",
    "df_F2.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 将df_F2中的F2_FM_RATIO绘制成直方图和箱型图\n",
    "\n",
    "# 直方图绘制\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']  #显示中文字符\n",
    "plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号\n",
    "# plt.rcParams['savefig.dpi'] = 300 #图片像素\n",
    "#plt.rcParams['figure.dpi'] = 300 #分辨率\n",
    "plt.hist(df_F2['F2_FM_RATIO'], bins=10, range=None,  weights=None, cumulative=False, bottom=None,\\\n",
    "         histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False)\n",
    "ax = plt.gca()\n",
    "plt.grid()  \n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "ax.set_xlabel('F2')\n",
    "ax.set_ylabel('Vehicle Number')\n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()\n",
    "\n",
    "# 箱型图绘制\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']  #显示中文字符\n",
    "plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号\n",
    "# plt.rcParams['savefig.dpi'] = 300 #图片像素\n",
    "#plt.rcParams['figure.dpi'] = 300 #分辨率\n",
    "df_F2['F2_FM_RATIO'].plot(kind='box')\n",
    "# axes.set_ylabel('values of tip_pct')\n",
    "ax = plt.gca()\n",
    "plt.grid()  \n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Analyse the feature 3&4——Average Offpeakhour Travel Frequency and standard deviation\n",
    "we analyse the Average Offpeakhour Travel Frequency and standard deviation, which means the average frequency of the vehicles being detected in the road network in the offpeal hour and the standard deviation of the frequency of the vehicles being detected in the road network in the offpeal hour."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "database connected\n",
      "database close\n"
     ]
    }
   ],
   "source": [
    "#该函数用来得到oracle中的表WORKDAY_TRA_FREQ中的数据,并存为dataframe,格式与dateframe完全一样\n",
    "db = oracle.connect()    # connect oracle database\n",
    "print(\"database connected\")\n",
    "cursor = db.cursor()    # create cursor\n",
    "cursor.execute('select * from WORKDAY_OFFPEAK_STD_AND_AVG')    # execute sql \n",
    "data = cursor.fetchall()    # fetch data\n",
    "df_F3_4 = pd.DataFrame(data)\n",
    "\n",
    "#change columns' name\n",
    "df_F3_4.rename(columns={0:'CAR_NUM', 1:'STD_FD' , 2:'AVG_FD'}, inplace = True)\n",
    "#print(df)\n",
    "cursor.close()   #close the curse\n",
    "db.close()   #close the database\n",
    "print(\"database close\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CAR_NUM</th>\n",
       "      <th>STD_FD</th>\n",
       "      <th>AVG_FD</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>浙AAS409</td>\n",
       "      <td>7.485061</td>\n",
       "      <td>12.444444</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>浙A6MC10</td>\n",
       "      <td>2.149197</td>\n",
       "      <td>2.571429</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>浙A2KM28</td>\n",
       "      <td>4.049691</td>\n",
       "      <td>7.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>浙A776MY</td>\n",
       "      <td>8.565110</td>\n",
       "      <td>10.888889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>浙A7KN19</td>\n",
       "      <td>9.153194</td>\n",
       "      <td>15.266667</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   CAR_NUM    STD_FD     AVG_FD\n",
       "0  浙AAS409  7.485061  12.444444\n",
       "1  浙A6MC10  2.149197   2.571429\n",
       "2  浙A2KM28  4.049691   7.400000\n",
       "3  浙A776MY  8.565110  10.888889\n",
       "4  浙A7KN19  9.153194  15.266667"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# have a look at df_F3_4\n",
    "df_F3_4.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>STD_FD</th>\n",
       "      <th>AVG_FD</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>2.412918e+06</td>\n",
       "      <td>2.412918e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>1.252860e+00</td>\n",
       "      <td>3.149558e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>2.273064e+00</td>\n",
       "      <td>3.627281e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>1.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>1.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>2.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>1.940790e+00</td>\n",
       "      <td>4.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>9.377308e+01</td>\n",
       "      <td>4.050000e+02</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             STD_FD        AVG_FD\n",
       "count  2.412918e+06  2.412918e+06\n",
       "mean   1.252860e+00  3.149558e+00\n",
       "std    2.273064e+00  3.627281e+00\n",
       "min    0.000000e+00  1.000000e+00\n",
       "25%    0.000000e+00  1.000000e+00\n",
       "50%    0.000000e+00  2.000000e+00\n",
       "75%    1.940790e+00  4.000000e+00\n",
       "max    9.377308e+01  4.050000e+02"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 从df_F3_4表中得到常规的统计指标，并绘制成图\n",
    "df_F3_4.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEMCAYAAAAs8rYIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAATMUlEQVR4nO3df6zddX3H8ed7LWy1N3ZF8DqaTMNCliiljl4QDJJ7GbjpcCKQQcDxYyRlSvQP9wcaOicGpxIh0WbouiACQ26QTED5oZD0ji4WlaJQ5nQupoCEgqbQemuj4t7745zq5eyce88593zP+d5+no/kpN9zzud+z+t82r767ffHOZGZSJLK8jujDiBJGj7LX5IKZPlLUoEsf0kqkOUvSQWy/CWpQEuq/CNiPCK2djHu+oh4xzAySdJStGTKPyJWAzcBKxcY9xbgNZn5laEEk6QlaMmUP/Br4FxgL0BEvCIi7oiIhyLin5qPHQL8C7AzIt45uqiSVG9Lpvwzc29m7pnz0Abgicw8BfiDiDgWuBD4HnANcEJEvG8EUSWp9pZM+bfxx8C7ImIGOApYA/wJsDkzdwH/CkyNLp4k1dfyUQdYhB8A38rMGyPiDOAp4H9o/EMAMAE8OapwklRnsdQ+2C0iZjJzMiJWAjcCr6FxHOB8IIHPA+PAIcA5mfnMyMJKUk0tufKXJC3eUt7nL0nq08D3+UfEKmAaWAbsA87NzF+2jFkO/Kh5A3hfZu7otM7DDz88X/e61/WVZ9++faxcOe+lAUNXx0xgrl7UMROYqxd1zASDzbV9+/afZuYRbZ/MzIHegPcCpzeXPwv8ZZsxxwGf7Had69evz35t2bKl75+tSh0zZZqrF3XMlGmuXtQxU+ZgcwGPZIdeHfiWf2ZeP+fuEcDzbYadCJwREVPADuCyzHxp0FkkSe1VdsA3Ik4Crs7MP23z3PHAjzPz2Yi4GbgjM+9uGbOBxoVcjI+Pr5+enu4rx+zsLGNjY339bFXqmAnM1Ys6ZgJz9aKOmWCwuaamprZn5kTbJzv9l2AxN+Aw4BHgtR2e/905y+8H/m6+9bnbZzjM1b06Zso0Vy/qmClzeLt9Bn62T0QcCnwJ+FBmdrrI6paIWBcRy4AzgccGnUOS1FkVV/heSuOA7pURcSWwBTgkMzfOGfNR4ItAAHdn5oMV5JAkdVDFAd/P0jjLZ74xTwDHDvq1JUnd8SIvSSqQ5S9JBbL8JalAS/kjnbuy45k9XPzBe0by2js/8RcjeV1JWohb/pJUIMtfkgpk+UtSgSx/SSqQ5S9JBbL8JalAlr8kFcjyl6QCWf6SVCDLX5IKZPlLUoEsf0kqkOUvSQWy/CWpQJa/JBXI8pekAln+klQgy1+SCmT5S1KBLH9JKpDlL0kFsvwlqUCWvyQVyPKXpAJZ/pJUIMtfkgpk+UtSgSx/SSqQ5S9JBbL8JalAlr8kFcjyl6QCDbz8I2JVRNwXEV+PiC9HxKEdxt0QEdsiYuOgM0iS5lfFlv8FwHWZ+VZgF/DnrQMi4ixgWWaeBBwVEUdXkEOS1EFkZnUrj7gD+FRmPtzy+GeA+zPz3og4D1iRmTe2jNkAbAAYHx9fPz093VeG53fv4bn9ff3ooq1ds6rt47Ozs4yNjQ05zcLM1b06ZgJz9aKOmWCwuaamprZn5kS755YP5BXaiIiTgNWtxd+0EnimubwbOK51QGZuBjYDTExM5OTkZF85Nt16F9fuqOxtzmvnBZNtH5+ZmaHf91Mlc3WvjpnAXL2oYyYYXq5KWjEiDgM2AWd3GDILrGguj+GBZ0kaqioO+B4KfAn4UGY+2WHYduDk5vI6YOegc0iSOqtiy/9SGrtxroyIK4EtwCGZOfesnjuBrRFxJPA24MQKckiSOhh4+WfmZ4HPLjBmb0RMAqcD12TmnkHnkCR1NpojoUBmvgDcPqrXl6SSeaBVkgpk+UtSgSx/SSqQ5S9JBbL8JalAlr8kFcjyl6QCWf6SVCDLX5IKZPlLUoEsf0kqkOUvSQWy/CWpQJa/JBXI8pekAln+klQgy1+SCmT5S1KBLH9JKpDlL0kFsvwlqUCWvyQVyPKXpAJZ/pJUoAXLPyLuG0YQSdLwdLPlvyMi3ll5EknS0CzvYszxwPsiYgewD8jMPLXaWJKkKi1Y/pk5NYwgkqTh6WbLn4g4BlgDPAU8nZmzlaaSJFWqmwO+m4CrgI8DRwFfrDqUJKla3RzwXZuZZwMvZuY9wKqKM0mSKtZN+f8kIj4MrI6Ii4BdFWeSJFWsm/K/ENgDbKOx1X9JpYkkSZVbsPwzcz+wBXgA2JqZP1/oZyJiPCK2zvP88oh4KiJmmre1PaWWJC3Kgmf7RMS1wOuB7wCXRsSPMvP984xfDdwErJxntccCt2XmFT3mlSQNQDener4pM08+cCci/mOB8b8GzgXummfMicAZETEF7AAuy8yXusgiSRqAyMz2T0T8YXPxGuCrwDeB9cA5mXnOgiuOmMnMyQ7PHQ/8ODOfjYibgTsy8+6WMRuADQDj4+Prp6enu3tHLZ7fvYfn9vf1o4u2dk37E6NmZ2cZGxsbcpqFmat7dcwE5upFHTPBYHNNTU1tz8yJds/Nt+V/VfPX/cCpzRvA3gFkejwzf9FcfgQ4unVAZm4GNgNMTEzk5ORkXy+06da7uHZHV9eyDdzOCybbPj4zM0O/76dK5upeHTOBuXpRx0wwvFwdD/hm5iWZeQnwcPOhaN4G4ZaIWBcRy4AzgccGtF5JUhe62SS+GDifxr78nkXE64HzM3PjnIc/SuNK4QDuzswH+1m3JKk/3ZT/c8CDwJM0yjr57S6gjg7s78/M7wEbW557gsYZP5KkEeim/A+h8REPC57fL0laGrop/3Hg2xHx3IEH/Dx/SVrauin/TZWnkCQNVS9f4L4CeBfwloqySJKGpJtv8rppzt3PRcT1FeaRJA1BN5/tc8qcu68G3lBdHEnSMHSzz3+KxumdAL8E3lNdHEnSMHQs/+YXuPzmLo1/AA4FzqFxkZYkaYma74Dv3I9zSBr/A/gIMFltJElS1Tpu+WfmVRFxKPBu4DLg+8BxmfndIWWTJFWk45Z/RHwMeBq4APgk8M/AKyLizUPKJkmqyHwHfI8E7m0uv2PO4wl8o7JEkqTKzbfbxy9ql6SDVC9X+EqSDhKWvyQVyPKXpAJZ/pJUoK6+2TwijgHWAE8BT2fmbKWpJEmVWnDLPyI2AVcBHweOovHdu5KkJayb3T5rM/Ns4MXMvAdYVXEmSVLFuin/nzQ/5G11RFwE7Ko4kySpYt2U/4XAHmAbja1+L/6SpCWum2/y2g98eghZJElD4qmeklSg+b7MZQu//Qav3zwMZGaeWmkqSVKl5vtgt6lhBpEkDY+7fSSpQN1c5PV7ETHRXL60+e1ekqQlrJst/9uBNzSXx4Fbq4sjSRqGbsp/dWbeBJCZ/wgcXm0kSVLVuvlgtx9HxBXAt4DjgeerjSRJqlo3W/4XAz8HzgH2AxdVGUiSVL1urvD9BbBpCFkkSUPiqZ6SVKD5rvC9LjM/0HKlr1f4StJBYL4rfD/Q/NUrfSXpIFPJbp+IGI+IrQuMuSEitkXExioySJI6W/CAb0S8GjgV+M2VvZl58zzjVwM3ASvnGXMWsCwzT4qIz0fE0Zn5w56SS5L6FpmtH9zZMiDiUeDfgKcPPHbgoq8O419J49jAXZk52WHMZ4D7M/PeiDgPWJGZN7aM2QBsABgfH18/PT3d1Rtq9fzuPTy3v68fXbS1a9p/4+Xs7CxjY2NDTrMwc3WvjpnAXL2oYyYYbK6pqantmTnR7rluLvL6WWZe3e2LZeZegIiYb9hK4Jnm8m7guDbr2QxsBpiYmMjJycluI7zMplvv4tod3bzNwdt5wWTbx2dmZuj3/VTJXN2rYyYwVy/qmAmGl2u+s31OaS5ujYjbgJuBfQCZ+dAiX3cWWNFcHsNTTiVpqObbJD5wls+vgO8DJzTvJ7DY8t8OnAw8DKwDfrDI9UmSejDfqZ5XHViOiGOANcBTzNn3342IeD1wfmbOPavnThr/ozgSeBtwYi/rlCQtTjef578JuAr4OHAU8MVuVnzgYG9mfq+l+A8cF5ikseU/lZl7ekotSVqUbva1r83Ms4EXM/MeoP0pLD3KzBcy8/bM3DWI9UmSutdN+f8kIj4MrI6IiwDLWpKWuG7K/0JgD7CNxlb/JZUmkiRVbr5TPT8P3A88kJmfHl4kSVLV5tvy/zLwZmAmIr4RER+JiDfFAldvSZLqb75TPb8CfAUgItYAVwBbgZ8BrxpKOklSJebb7fNHwOnAacAbgUeBvwW+NpRkkqTKzHeF763AfcC1wDcz83+HE0mSVLX5dvt41a0kHaT8QDVJKpDlL0kFsvwlqUCWvyQVyPKXpAJZ/pJUIMtfkgpk+UtSgSx/SSqQ5S9JBbL8JalAlr8kFcjyl6QCWf6SVCDLX5IKZPlLUoEsf0kqkOUvSQWy/CWpQJa/JBXI8pekAln+klQgy1+SCmT5S1KBLH9JKpDlL0kFqqT8I+KGiNgWERs7PL88Ip6KiJnmbW0VOSRJ7Q28/CPiLGBZZp4EHBURR7cZdixwW2ZONm87Bp1DktRZZOZgVxjxGeD+zLw3Is4DVmTmjS1j3gtcDuwDdgCXZeZLLWM2ABsAxsfH109PT/eV5/nde3huf18/umhr16xq+/js7CxjY2NDTrMwc3WvjpnAXL2oYyYYbK6pqantmTnR7rnlA3mFl1sJPNNc3g0c12bMt4HTMvPZiLgZeDtw99wBmbkZ2AwwMTGRk5OTfYXZdOtdXLujire5sJ0XTLZ9fGZmhn7fT5XM1b06ZgJz9aKOmWB4uapoxVlgRXN5jPa7lh7PzF80lx8B2u0akiRVpIoDvtuBk5vL64CdbcbcEhHrImIZcCbwWAU5JEkdVFH+dwJ/HRHXAX8F/GdEXN0y5qPALcB3gW2Z+WAFOSRJHQx8t09m7o2ISeB04JrM3EXLln1mPkHjjB9J0ghUciQ0M18Abq9i3ZKkxfMKX0kqkOUvSQWy/CWpQJa/JBXI8pekAln+klQgy1+SCmT5S1KBLH9JKpDlL0kFsvwlqUCWvyQVyPKXpAJZ/pJUIMtfkgpk+UtSgSx/SSqQ5S9JBbL8JalAlr8kFcjyl6QCWf6SVCDLX5IKZPlLUoEsf0kqkOUvSQWy/CWpQJa/JBXI8pekAln+klQgy1+SCmT5S1KBLH9JKpDlL0kFqqT8I+KGiNgWERsXM0aSVI2Bl39EnAUsy8yTgKMi4uh+xkiSqrO8gnVOArc3l78OnAz8sNcxEbEB2NC8OxsRP+gzz+HAT/v82UWJT3Z8amSZFmCu7tUxE5irF3XMBIPN9dpOT1RR/iuBZ5rLu4Hj+hmTmZuBzYsNExGPZObEYtczSHXMBObqRR0zgbl6UcdMMLxcVezznwVWNJfHOrxGN2MkSRWponS309iNA7AO2NnnGElSRarY7XMnsDUijgTeBpwXEVdn5sZ5xpxYQY4DFr3rqAJ1zATm6kUdM4G5elHHTDCkXJGZg19pxGrgdOChzNzV7xhJUjUqKX9JUr15oFXSwETEYRFxekQcPuosB9QxUx0c1OVfl6uII2J5RDwVETPN29pRZouI8YjYOuf+/8syinxzc7Wbs2HniohVEXFfRHw9Ir4cEYfWYa465BrpXDVfbzXwVeAEYEtEHDHq+eqQaeRzNSffeER8p1OGKnMdtOVfs6uIjwVuy8zJzJwEjh5VtuZfhptoXGvRdp5GMXetuWiZs8zcMYJcFwDXZeZbgV3Aea2vP6I/Z625Psjo5woav2cfyMyPAV8DTm3NMIJcrZn+hnrM1QGfAlaM4u/hQVv+tL+KeFROBM6IiG9FxA3AaYwu26+Bc4G9zfuTbbK0e2zYuV42ZxGxfNi5MvP6zHygefcI4N1tXn+omTrkeokRz1Uz179n5sMRcQqNLe0/a5NhqLnaZNpPDeYKICJOBfbR+Ae8XYZKcx3M5d96FfH4CLN8GzgtM08ADqFxeutIsmXm3szcM+ehdvM09Llrk6t1zt4+ilwAEXESsBp4us3rj+zP2ZxcD1CfuQoa/4i/AGSbDEPP1ZLpO9RgriLiUODvafyvjQ4ZKs11MJd/na4ifjwzn20uP0Ljszvqkq3dPNVh7lrn7OhR5IqIw4BNNHYX1GauWnLVYq4AsuFy4HHgzW0yDD1XS6YjazJXHwSuz8wXm/eH/mfrYC7/Ol1FfEtErIuIZcCZwOXUJ1u7earD3LXO2WPDztXcOvsS8KHMfLLD6w99rtrkGvlcNXNdEREXNu/+PvCJNhmG/XvYmulzdZgrGrt+L4+IGeCNwDvaZKg2V2YelDfglTR+Y68D/gtYNcIsx9DY6tgBfKwO2YCZTvM0ynxzcr1szkbxewq8h8augpnm7aI6zFWbXP8w6rlqvuaBXVAPAdc352ek89Um09o6zFVLxplR/D08qC/yihpfRVynbO2y1CnfXKPO5VwtPkMdcrWqQ6Zhz9VBXf6SpPYO5n3+kqQOLH9JKpDlL0kFsvylPkTEFyLi9ubydER8YcSRpJ5Y/lL/1rX8Ki0Zlr/Uv19GxKuAX406iNQry1/q32M0PjPmsVEHkXpl+Uv9exS4uPmrtKRY/lL/HgWOx/LXEmT5S/3bCfw38OSIc0g98+MdJKlAbvlLUoEsf0kqkOUvSQWy/CWpQJa/JBXI8pekAv0f2qZQeGUvcoEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 对df_F3_4进行分析，并将其绘制成直方图和箱型图\n",
    "\n",
    "# STD_FD直方图绘制\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']  #显示中文字符\n",
    "plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号\n",
    "# plt.rcParams['savefig.dpi'] = 300 #图片像素\n",
    "#plt.rcParams['figure.dpi'] = 300 #分辨率\n",
    "plt.hist(df_F3_4['STD_FD'], bins=10, range=None, weights=None, cumulative=False, bottom=None,\\\n",
    "         histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False)\n",
    "ax = plt.gca()\n",
    "plt.grid()  \n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "ax.set_xlabel(r'$\\sigma$')\n",
    "ax.set_ylabel('Vehicle Number')\n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()\n",
    "\n",
    "# AVG_FD直方图绘制\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']  #显示中文字符\n",
    "plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号\n",
    "# plt.rcParams['savefig.dpi'] = 300 #图片像素\n",
    "#plt.rcParams['figure.dpi'] = 300 #分辨率\n",
    "plt.hist(df_F3_4['AVG_FD'], bins=10, range=None, weights=None, cumulative=False, bottom=None,\\\n",
    "         histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False)\n",
    "ax = plt.gca()\n",
    "plt.grid()  \n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "ax.set_xlabel('M')\n",
    "ax.set_ylabel('Vehicle Number')\n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()\n",
    "\n",
    "# STD_FD箱型图绘制\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']  #显示中文字符\n",
    "plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号\n",
    "# plt.rcParams['savefig.dpi'] = 300 #图片像素\n",
    "#plt.rcParams['figure.dpi'] = 300 #分辨率\n",
    "ax = plt.gca()\n",
    "df_F3_4['STD_FD'].plot(kind='box' , ax = ax)\n",
    "plt.grid()  \n",
    "# ax.set_ylabel('values of tip_pct')\n",
    "ax.set_xlabel(r'$\\sigma$')\n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()\n",
    "\n",
    "# AVG_FD箱型图绘制\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']  #显示中文字符\n",
    "plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号\n",
    "# plt.rcParams['savefig.dpi'] = 300 #图片像素\n",
    "#plt.rcParams['figure.dpi'] = 300 #分辨率\n",
    "df_F3_4['AVG_FD'].plot(kind='box')\n",
    "ax = plt.gca()\n",
    "plt.grid()  \n",
    "# ax.set_ylabel('values of tip_pct')\n",
    "ax.set_xlabel('M')\n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Analyse the feature 5——OD的时间稳定性系数\n",
    "1. Firstly, we analyse the $O_1$,$O_2$,$O_3$,$O_4$ to have a rough understanding of the indicators."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "database connected\n",
      "database close\n"
     ]
    }
   ],
   "source": [
    "#该函数用来得到oracle中的表WORKDAY_TRA_FREQ中的数据,并存为dataframe,格式与dateframe完全一样\n",
    "db = oracle.connect()    # connect oracle database\n",
    "print(\"database connected\")\n",
    "cursor = db.cursor()    # create cursor\n",
    "cursor.execute('select * from STABLE_RATIO_D1_NEW')    # execute sql \n",
    "data = cursor.fetchall()    # fetch data\n",
    "df_D1 = pd.DataFrame(data)\n",
    "#change columns' name\n",
    "df_D1.rename(columns={0:'CAR_NUM', 1:'DEV_ID_1_D_2_P' , 2:'DEV_ID_2_D_1_P' , \\\n",
    "                      3:'STABLE_NUM1' , 4:'SAME_PLACE_NUM' , 5:'STABLE_NUM2' , 6:'STABLE_RATIO' }, inplace = True)\n",
    "\n",
    "cursor.execute('select * from STABLE_RATIO_O1_NEW')    # execute sql \n",
    "data = cursor.fetchall()    # fetch data\n",
    "df_O1 = pd.DataFrame(data)\n",
    "#change columns' name\n",
    "df_O1.rename(columns={0:'CAR_NUM', 1:'DEV_ID_1_D_2_P' , 2:'DEV_ID_2_D_1_P' , \\\n",
    "                      3:'STABLE_NUM1' , 4:'SAME_PLACE_NUM' , 5:'STABLE_NUM2' , 6:'STABLE_RATIO' }, inplace = True)\n",
    "\n",
    "cursor.execute('select * from STABLE_RATIO_O2_NEW')    # execute sql \n",
    "data = cursor.fetchall()    # fetch data\n",
    "df_O2 = pd.DataFrame(data)\n",
    "#change columns' name\n",
    "df_O2.rename(columns={0:'CAR_NUM', 1:'DEV_ID_1_D_2_P' , 2:'DEV_ID_2_D_1_P' , \\\n",
    "                      3:'STABLE_NUM1' , 4:'SAME_PLACE_NUM' , 5:'STABLE_NUM2' , 6:'STABLE_RATIO' }, inplace = True)\n",
    "\n",
    "cursor.execute('select * from STABLE_RATIO_D2_NEW')    # execute sql \n",
    "data = cursor.fetchall()    # fetch data\n",
    "df_D2 = pd.DataFrame(data)\n",
    "#change columns' name\n",
    "df_D2.rename(columns={0:'CAR_NUM', 1:'DEV_ID_1_D_2_P' , 2:'DEV_ID_2_D_1_P' , \\\n",
    "                      3:'STABLE_NUM1' , 4:'SAME_PLACE_NUM' , 5:'STABLE_NUM2' , 6:'STABLE_RATIO' }, inplace = True)\n",
    "#print(df)\n",
    "cursor.close()   #close the curse\n",
    "db.close()   #close the database\n",
    "print(\"database close\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   CAR_NUM DEV_ID_1_D_2_P DEV_ID_2_D_1_P  STABLE_NUM1  SAME_PLACE_NUM  \\\n",
      "0  BH11111           None           1352            1             NaN   \n",
      "1  JAA0189           None        2147730            4             NaN   \n",
      "2  KL11325           None        2147700            2             NaN   \n",
      "3  KL21502           None        2147728            1             NaN   \n",
      "4  ND00035           None        2147696            1             NaN   \n",
      "\n",
      "   STABLE_NUM2  STABLE_RATIO  \n",
      "0            1      0.047619  \n",
      "1            4      0.190476  \n",
      "2            2      0.095238  \n",
      "3            1      0.047619  \n",
      "4            1      0.047619  \n",
      "   CAR_NUM DEV_ID_1_D_2_P DEV_ID_2_D_1_P  STABLE_NUM1  SAME_PLACE_NUM  \\\n",
      "0  EA15102           None           2311            1             NaN   \n",
      "1  HF08613           None        2147734            1             NaN   \n",
      "2  HF08745           None        2148430            2             NaN   \n",
      "3  HO00143           None        2148023            1             NaN   \n",
      "4  JA0D73L           None        2148023            1             NaN   \n",
      "\n",
      "   STABLE_NUM2  STABLE_RATIO  \n",
      "0            1      0.047619  \n",
      "1            1      0.047619  \n",
      "2            2      0.095238  \n",
      "3            1      0.047619  \n",
      "4            1      0.047619  \n",
      "   CAR_NUM DEV_ID_1_D_2_P DEV_ID_2_D_1_P  STABLE_NUM1  SAME_PLACE_NUM  \\\n",
      "0  EA15102           None           2222            1             NaN   \n",
      "1  HD00069           None        2148568            1             NaN   \n",
      "2  HF06016           None        2149574            1             NaN   \n",
      "3  HF08745           None        2148393            1             NaN   \n",
      "4  JAA4317           None        2149195            1             NaN   \n",
      "\n",
      "   STABLE_NUM2  STABLE_RATIO  \n",
      "0            1      0.047619  \n",
      "1            1      0.047619  \n",
      "2            1      0.047619  \n",
      "3            1      0.047619  \n",
      "4            1      0.047619  \n",
      "   CAR_NUM DEV_ID_1_D_2_P DEV_ID_2_D_1_P  STABLE_NUM1  SAME_PLACE_NUM  \\\n",
      "0  BA62402           None           1371            1             NaN   \n",
      "1  BC61066           None           2221            1             NaN   \n",
      "2  HD00036           None        2148572            1             NaN   \n",
      "3  HF08612           None        2148398            2             NaN   \n",
      "4  HF08622           None        2148403            1             NaN   \n",
      "\n",
      "   STABLE_NUM2  STABLE_RATIO  \n",
      "0            1      0.047619  \n",
      "1            1      0.047619  \n",
      "2            1      0.047619  \n",
      "3            2      0.095238  \n",
      "4            1      0.047619  \n"
     ]
    }
   ],
   "source": [
    "# have a look at df_O1,O2,D1,D2\n",
    "print(df_O1.head(5))\n",
    "print(df_D1.head(5))\n",
    "print(df_O2.head(5))\n",
    "print(df_D2.head(5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "        STABLE_NUM1  SAME_PLACE_NUM   STABLE_NUM2  STABLE_RATIO\n",
      "count  1.518712e+06   120734.000000  1.518712e+06  1.518712e+06\n",
      "mean   2.601296e+00        3.981621  2.849636e+00  1.356939e-01\n",
      "std    3.315938e+00        1.218435  3.811085e+00  1.814640e-01\n",
      "min    1.000000e+00        3.000000  1.000000e+00  4.761905e-02\n",
      "25%    1.000000e+00        3.000000  1.000000e+00  4.761905e-02\n",
      "50%    1.000000e+00        4.000000  1.000000e+00  4.761905e-02\n",
      "75%    2.000000e+00        5.000000  2.000000e+00  9.523810e-02\n",
      "max    2.100000e+01       10.000000  2.900000e+01  1.000000e+00\n",
      "        STABLE_NUM1  SAME_PLACE_NUM   STABLE_NUM2  STABLE_RATIO\n",
      "count  1.518621e+06    98962.000000  1.518621e+06  1.518621e+06\n",
      "mean   2.470851e+00        3.931741  2.660844e+00  1.267038e-01\n",
      "std    3.228609e+00        1.192652  3.622029e+00  1.724602e-01\n",
      "min    1.000000e+00        3.000000  1.000000e+00  4.761905e-02\n",
      "25%    1.000000e+00        3.000000  1.000000e+00  4.761905e-02\n",
      "50%    1.000000e+00        4.000000  1.000000e+00  4.761905e-02\n",
      "75%    2.000000e+00        4.000000  2.000000e+00  9.523810e-02\n",
      "max    2.100000e+01       10.000000  2.900000e+01  1.000000e+00\n",
      "        STABLE_NUM1  SAME_PLACE_NUM   STABLE_NUM2  STABLE_RATIO\n",
      "count  2.024491e+06    95866.000000  2.024491e+06  2.024491e+06\n",
      "mean   2.051916e+00        3.795892  2.199309e+00  1.047278e-01\n",
      "std    2.542653e+00        1.117119  2.918871e+00  1.389854e-01\n",
      "min    1.000000e+00        3.000000  1.000000e+00  4.761905e-02\n",
      "25%    1.000000e+00        3.000000  1.000000e+00  4.761905e-02\n",
      "50%    1.000000e+00        3.000000  1.000000e+00  4.761905e-02\n",
      "75%    2.000000e+00        4.000000  2.000000e+00  9.523810e-02\n",
      "max    2.100000e+01       10.000000  2.800000e+01  1.000000e+00\n",
      "        STABLE_NUM1  SAME_PLACE_NUM   STABLE_NUM2  STABLE_RATIO\n",
      "count  2.024439e+06   104582.000000  2.024439e+06  2.024439e+06\n",
      "mean   2.114729e+00        3.790490  2.273779e+00  1.082726e-01\n",
      "std    2.605102e+00        1.108251  2.990522e+00  1.423879e-01\n",
      "min    1.000000e+00        3.000000  1.000000e+00  4.761905e-02\n",
      "25%    1.000000e+00        3.000000  1.000000e+00  4.761905e-02\n",
      "50%    1.000000e+00        3.000000  1.000000e+00  4.761905e-02\n",
      "75%    2.000000e+00        4.000000  2.000000e+00  9.523810e-02\n",
      "max    2.100000e+01       10.000000  2.900000e+01  1.000000e+00\n"
     ]
    }
   ],
   "source": [
    "# 从df_O1,O2,D1,D2表中得到常规的统计指标，并绘制成图\n",
    "print(df_O1.describe())\n",
    "print(df_D1.describe())\n",
    "print(df_O2.describe())\n",
    "print(df_D2.describe())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CAR_NUM</th>\n",
       "      <th>DEV_ID_1_D_2_P</th>\n",
       "      <th>DEV_ID_2_D_1_P</th>\n",
       "      <th>STABLE_NUM1</th>\n",
       "      <th>SAME_PLACE_NUM</th>\n",
       "      <th>STABLE_NUM2</th>\n",
       "      <th>STABLE_RATIO</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>BH11111</td>\n",
       "      <td>None</td>\n",
       "      <td>1352</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>0.047619</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>JAA0189</td>\n",
       "      <td>None</td>\n",
       "      <td>2147730</td>\n",
       "      <td>4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>4</td>\n",
       "      <td>0.190476</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>KL11325</td>\n",
       "      <td>None</td>\n",
       "      <td>2147700</td>\n",
       "      <td>2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2</td>\n",
       "      <td>0.095238</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>KL21502</td>\n",
       "      <td>None</td>\n",
       "      <td>2147728</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>0.047619</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>ND00035</td>\n",
       "      <td>None</td>\n",
       "      <td>2147696</td>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>0.047619</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   CAR_NUM DEV_ID_1_D_2_P DEV_ID_2_D_1_P  STABLE_NUM1  SAME_PLACE_NUM  \\\n",
       "0  BH11111           None           1352            1             NaN   \n",
       "1  JAA0189           None        2147730            4             NaN   \n",
       "2  KL11325           None        2147700            2             NaN   \n",
       "3  KL21502           None        2147728            1             NaN   \n",
       "4  ND00035           None        2147696            1             NaN   \n",
       "\n",
       "   STABLE_NUM2  STABLE_RATIO  \n",
       "0            1      0.047619  \n",
       "1            4      0.190476  \n",
       "2            2      0.095238  \n",
       "3            1      0.047619  \n",
       "4            1      0.047619  "
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_O1.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 对df_O1,O2,D1,D2进行分析，并将其绘制成直方图和箱型图\n",
    "\n",
    "# O1直方图绘制\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']  #显示中文字符\n",
    "plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号\n",
    "# plt.rcParams['savefig.dpi'] = 300 #图片像素\n",
    "#plt.rcParams['figure.dpi'] = 300 #分辨率\n",
    "plt.hist(df_O1['STABLE_RATIO'], bins=10, range=None,weights=None, cumulative=False, bottom=None,\\\n",
    "         histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False)\n",
    "ax = plt.gca()\n",
    "plt.grid()  \n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "ax.set_xlabel(r'$O_1\\ Stable\\ Ratio$')\n",
    "ax.set_ylabel('Vehicle Number')\n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()\n",
    "\n",
    "# 对O1稳定性系数取log，因为后续要将4个稳定性系数相乘，这会使得最终的总的稳定性系数的方差非常大，因此考虑用log减小差距。\n",
    "# 计算出取log10后的稳定性系数\n",
    "df_O1_log = df_O1['STABLE_RATIO'].map(math.log10)\n",
    "# 绘图\n",
    "plt.hist(df_O1_log, bins=10, range=None,  weights=None, cumulative=False, bottom=None,\\\n",
    "         histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False)\n",
    "ax = plt.gca()\n",
    "plt.grid()  \n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "ax.set_xlabel(r'$O_1\\ Stable\\ Ratio$')\n",
    "ax.set_ylabel('Vehicle Number')\n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()\n",
    "\n",
    "# O1稳定性系数箱型图绘制\n",
    "df_O1['STABLE_RATIO'].plot(kind='box')\n",
    "ax = plt.gca()\n",
    "plt.grid()  \n",
    "# ax.set_ylabel('values of tip_pct')\n",
    "ax.set_xlabel(r'$O_1$')\n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()\n",
    "\n",
    "# 仅展示O1，其余的分布等等应该都是差不多的。\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Analyse the $O_1*O_2*D_1*D_2$**\n",
    "2. Sencondly, i analyse the $O_1*O_2*D_1*D_2$, to see the distribution of the indicator, and to judge whether choose the multiple result as the feature or just use 4 indicators as features directly. Besides, i will try the $O_1*O_2*D_1*D_2$ , $log(O_1*O_2*D_1*D_2)$ , $log(O_1)*log(O_2)*log(D_1)*log(D_2)$ respectively, to plot the distribution of these indicators to see which one will be the best feature option."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CAR_NUM</th>\n",
       "      <th>O1</th>\n",
       "      <th>D1</th>\n",
       "      <th>O2</th>\n",
       "      <th>D2</th>\n",
       "      <th>OD_Coei</th>\n",
       "      <th>OD_Coei_log_multi</th>\n",
       "      <th>OD_Coei_log</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>BH11111</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.095238</td>\n",
       "      <td>0.095238</td>\n",
       "      <td>0.000021</td>\n",
       "      <td>1.823138</td>\n",
       "      <td>-4.686817</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>JAA0189</td>\n",
       "      <td>0.190476</td>\n",
       "      <td>0.190476</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.000082</td>\n",
       "      <td>0.906701</td>\n",
       "      <td>-4.084757</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>KL11325</td>\n",
       "      <td>0.095238</td>\n",
       "      <td>0.095238</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.000021</td>\n",
       "      <td>1.823138</td>\n",
       "      <td>-4.686817</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>KL21502</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.095238</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.000010</td>\n",
       "      <td>2.360569</td>\n",
       "      <td>-4.987847</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>ND00035</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.000005</td>\n",
       "      <td>3.056427</td>\n",
       "      <td>-5.288877</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   CAR_NUM        O1        D1        O2        D2   OD_Coei  \\\n",
       "0  BH11111  0.047619  0.047619  0.095238  0.095238  0.000021   \n",
       "1  JAA0189  0.190476  0.190476  0.047619  0.047619  0.000082   \n",
       "2  KL11325  0.095238  0.095238  0.047619  0.047619  0.000021   \n",
       "3  KL21502  0.047619  0.047619  0.095238  0.047619  0.000010   \n",
       "4  ND00035  0.047619  0.047619  0.047619  0.047619  0.000005   \n",
       "\n",
       "   OD_Coei_log_multi  OD_Coei_log  \n",
       "0           1.823138    -4.686817  \n",
       "1           0.906701    -4.084757  \n",
       "2           1.823138    -4.686817  \n",
       "3           2.360569    -4.987847  \n",
       "4           3.056427    -5.288877  "
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_O1.rename(columns = {'STABLE_RATIO':'O1'} , inplace = True)\n",
    "df_O2.rename(columns = {'STABLE_RATIO':'O2'} , inplace = True)\n",
    "df_D1.rename(columns = {'STABLE_RATIO':'D1'} , inplace = True)\n",
    "df_D2.rename(columns = {'STABLE_RATIO':'D2'} , inplace = True)\n",
    "\n",
    "df_multi = pd.merge(df_O1[['CAR_NUM' , 'O1']] , df_D1[['CAR_NUM' , 'D1']] , how = 'inner' , on = 'CAR_NUM')\n",
    "df_multi = pd.merge(df_multi , df_O2[['CAR_NUM' , 'O2']] , how = 'inner' , on = 'CAR_NUM') ; df_multi = pd.merge(df_multi , df_D2[['CAR_NUM' , 'D2']] , how = 'inner' , on = 'CAR_NUM')\n",
    "df_multi['OD_Coei'] = df_multi['O1'] * df_multi['O2'] * df_multi['D1'] * df_multi['D2']\n",
    "df_multi['OD_Coei_log_multi'] = (df_multi['O1'].map(math.log10)) * (df_multi['O2'].map(math.log10)) * (df_multi['D1'].map(math.log10)) * (df_multi['D2'].map(math.log10))\n",
    "df_multi['OD_Coei_log'] = df_multi['OD_Coei'].map(math.log10)\n",
    "df_multi.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>O1</th>\n",
       "      <th>D1</th>\n",
       "      <th>O2</th>\n",
       "      <th>D2</th>\n",
       "      <th>OD_Coei</th>\n",
       "      <th>OD_Coei_log_multi</th>\n",
       "      <th>OD_Coei_log</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>954774.000000</td>\n",
       "      <td>954774.000000</td>\n",
       "      <td>954774.000000</td>\n",
       "      <td>954774.000000</td>\n",
       "      <td>954774.000000</td>\n",
       "      <td>954774.000000</td>\n",
       "      <td>954774.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>0.181774</td>\n",
       "      <td>0.167918</td>\n",
       "      <td>0.157326</td>\n",
       "      <td>0.164895</td>\n",
       "      <td>0.015837</td>\n",
       "      <td>1.550104</td>\n",
       "      <td>-3.957850</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.211355</td>\n",
       "      <td>0.202116</td>\n",
       "      <td>0.180048</td>\n",
       "      <td>0.183548</td>\n",
       "      <td>0.059302</td>\n",
       "      <td>1.223129</td>\n",
       "      <td>1.442067</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.000005</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>-5.288877</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.000005</td>\n",
       "      <td>0.236727</td>\n",
       "      <td>-5.288877</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>0.095238</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.095238</td>\n",
       "      <td>0.095238</td>\n",
       "      <td>0.000031</td>\n",
       "      <td>1.508761</td>\n",
       "      <td>-4.510726</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>0.238095</td>\n",
       "      <td>0.190476</td>\n",
       "      <td>0.190476</td>\n",
       "      <td>0.190476</td>\n",
       "      <td>0.000926</td>\n",
       "      <td>3.056427</td>\n",
       "      <td>-3.033605</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.056427</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  O1             D1             O2             D2  \\\n",
       "count  954774.000000  954774.000000  954774.000000  954774.000000   \n",
       "mean        0.181774       0.167918       0.157326       0.164895   \n",
       "std         0.211355       0.202116       0.180048       0.183548   \n",
       "min         0.047619       0.047619       0.047619       0.047619   \n",
       "25%         0.047619       0.047619       0.047619       0.047619   \n",
       "50%         0.095238       0.047619       0.095238       0.095238   \n",
       "75%         0.238095       0.190476       0.190476       0.190476   \n",
       "max         1.000000       1.000000       1.000000       1.000000   \n",
       "\n",
       "             OD_Coei  OD_Coei_log_multi    OD_Coei_log  \n",
       "count  954774.000000      954774.000000  954774.000000  \n",
       "mean        0.015837           1.550104      -3.957850  \n",
       "std         0.059302           1.223129       1.442067  \n",
       "min         0.000005           0.000000      -5.288877  \n",
       "25%         0.000005           0.236727      -5.288877  \n",
       "50%         0.000031           1.508761      -4.510726  \n",
       "75%         0.000926           3.056427      -3.033605  \n",
       "max         1.000000           3.056427       0.000000  "
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# have a rough understanding of the O1,D1,O2,D2\n",
    "df_multi.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 对df_O1,O2,D1,D2进行分析，并将其绘制成直方图和箱型图\n",
    "\n",
    "# 将各种OD Coeifficient绘制直方图，观察其分布情况。\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']  #显示中文字符\n",
    "plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号\n",
    "# plt.rcParams['savefig.dpi'] = 300 #图片像素\n",
    "#plt.rcParams['figure.dpi'] = 300 #分辨率\n",
    "plt.hist(df_multi['OD_Coei'], bins=10, range=None,  weights=None, cumulative=False, bottom=None,\\\n",
    "         histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False)\n",
    "ax = plt.gca()\n",
    "plt.grid()  \n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "ax.set_xlabel(r'OD Stable Coeifficient(multiple directly)')\n",
    "ax.set_ylabel('Vehicle Number')\n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()\n",
    "\n",
    "plt.hist(df_multi['OD_Coei_log_multi'], bins=10, range=None,  weights=None, cumulative=False, bottom=None,\\\n",
    "         histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False)\n",
    "ax = plt.gca()\n",
    "plt.grid()  \n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "ax.set_xlabel(r'OD Stable Coeifficient(log multiple)')\n",
    "ax.set_ylabel('Vehicle Number')\n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()\n",
    "\n",
    "plt.hist(df_multi['OD_Coei_log'], bins=10, range=None,  weights=None, cumulative=False, bottom=None,\\\n",
    "         histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False)\n",
    "ax = plt.gca()\n",
    "plt.grid()  \n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "ax.set_xlabel(r'OD Stable Coeifficient(log)')\n",
    "ax.set_ylabel('Vehicle Number')\n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()\n",
    "\n",
    "plt.hist(df_multi['O1'], bins=10, range=None,  weights=None, cumulative=False, bottom=None,\\\n",
    "         histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False)\n",
    "ax = plt.gca()\n",
    "plt.grid()  \n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "ax.set_xlabel(r'$O_1$')\n",
    "ax.set_ylabel('Vehicle Number')\n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Analyse the feature 6——OD的空间稳定性系数\n",
    "I analyse the OD's spatial stable coeifficient, which can reflect the stability of the travelers' $O_1 , D_1 , O_2 , D_2$. The detailed calculation method can be found in my paper."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "database connected\n",
      "database close\n"
     ]
    }
   ],
   "source": [
    "#该函数用来得到oracle中的表WORKDAY_TRA_FREQ中的数据,并存为dataframe,格式与dateframe完全一样\n",
    "db = oracle.connect()    # connect oracle database\n",
    "print(\"database connected\")\n",
    "cursor = db.cursor()    # create cursor\n",
    "cursor.execute('select * from OD_SPATIAL_STABLE_RATIO')    # execute sql \n",
    "data = cursor.fetchall()    # fetch data\n",
    "df_FS = pd.DataFrame(data)\n",
    "#change columns' name\n",
    "df_FS.rename(columns={0:'CAR_NUM', 1:'FS'}, inplace = True)\n",
    "\n",
    "#print(df)\n",
    "cursor.close()   #close the curse\n",
    "db.close()   #close the database\n",
    "print(\"database close\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CAR_NUM</th>\n",
       "      <th>FS</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>BH11111</td>\n",
       "      <td>-4.664765</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>EA15102</td>\n",
       "      <td>0.269627</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>HF08613</td>\n",
       "      <td>-9.400239</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>HF08745</td>\n",
       "      <td>-1.041895</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>HO00143</td>\n",
       "      <td>-1.616044</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   CAR_NUM        FS\n",
       "2  BH11111 -4.664765\n",
       "6  EA15102  0.269627\n",
       "7  HF08613 -9.400239\n",
       "8  HF08745 -1.041895\n",
       "9  HO00143 -1.616044"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# delete all the rows which Fs is NULL\n",
    "df_FS.dropna(inplace = True)\n",
    "df_FS.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>FS</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>7.995600e+05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>-9.759897e+02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>1.238233e+05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-6.478347e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>-2.315607e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>-1.267619e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>-7.431498e-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>1.000000e+00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 FS\n",
       "count  7.995600e+05\n",
       "mean  -9.759897e+02\n",
       "std    1.238233e+05\n",
       "min   -6.478347e+07\n",
       "25%   -2.315607e+00\n",
       "50%   -1.267619e+00\n",
       "75%   -7.431498e-01\n",
       "max    1.000000e+00"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_FS.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 将各种OD Coeifficient绘制直方图，观察其分布情况。\n",
    "plt.rcParams['font.sans-serif'] = ['SimHei']  #显示中文字符\n",
    "plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号\n",
    "# plt.rcParams['savefig.dpi'] = 300 #图片像素\n",
    "#plt.rcParams['figure.dpi'] = 300 #分辨率\n",
    "plt.hist(df_FS['FS'], bins=10, range=None,  weights=None, cumulative=False, bottom=None,\\\n",
    "         histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False)\n",
    "ax = plt.gca()\n",
    "plt.grid()  \n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "ax.set_xlabel(r'$F_s$')\n",
    "ax.set_ylabel('Vehicle Number')\n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()\n",
    "\n",
    "# Fs箱型图绘制\n",
    "df_FS['FS'].plot(kind='box')\n",
    "ax = plt.gca()\n",
    "plt.grid()  \n",
    "# ax.set_ylabel('values of tip_pct')\n",
    "ax.set_xlabel(r'$F_s$')\n",
    "# ax.set_title(u'车辆分布情况', fontproperties='SimHei',fontsize=14)  \n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Analysis of all the features\n",
    "I have combine all the features that are necessary for the commuting vehicle identification, So next i will analyse them in different aspects."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "database connected\n",
      "database close\n"
     ]
    }
   ],
   "source": [
    "#该函数用来得到oracle中的表COMMUVEHFEAT中的数据,并存为dataframe,格式与dateframe完全一样\n",
    "db = oracle.connect()    # connect oracle database\n",
    "print(\"database connected\")\n",
    "cursor = db.cursor()    # create cursor\n",
    "cursor.execute('select * from COMMUVEHFEAT')    # execute sql \n",
    "data = cursor.fetchall()    # fetch data\n",
    "df_feat = pd.DataFrame(data)\n",
    "#change columns' name\n",
    "df_feat.rename(columns={0:'CAR_NUM', 1:'F1' , 2:'F2' , 3 : 'O1' , 4:'D1' , 5:'O2' , \\\n",
    "                      6:'D2' , 7:'FS' , 8:'STD_FD' , 9:'AVG_FD'}, inplace = True)\n",
    "\n",
    "#print(df)\n",
    "cursor.close()   #close the curse\n",
    "db.close()   #close the database\n",
    "print(\"database close\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CAR_NUM</th>\n",
       "      <th>F1</th>\n",
       "      <th>F2</th>\n",
       "      <th>O1</th>\n",
       "      <th>D1</th>\n",
       "      <th>O2</th>\n",
       "      <th>D2</th>\n",
       "      <th>FS</th>\n",
       "      <th>STD_FD</th>\n",
       "      <th>AVG_FD</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>浙A837YS</td>\n",
       "      <td>0.428571</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.476190</td>\n",
       "      <td>0.476190</td>\n",
       "      <td>0.380952</td>\n",
       "      <td>0.238095</td>\n",
       "      <td>-6.986293</td>\n",
       "      <td>1.417930</td>\n",
       "      <td>3.700000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>浙AR911W</td>\n",
       "      <td>0.809524</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.857143</td>\n",
       "      <td>0.809524</td>\n",
       "      <td>0.666667</td>\n",
       "      <td>0.714286</td>\n",
       "      <td>0.630876</td>\n",
       "      <td>3.113023</td>\n",
       "      <td>6.090909</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>浙AJ183G</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.380952</td>\n",
       "      <td>0.095238</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>-1.105313</td>\n",
       "      <td>0.547723</td>\n",
       "      <td>1.600000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>浙A916KS</td>\n",
       "      <td>0.285714</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.190476</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>0.380952</td>\n",
       "      <td>0.333333</td>\n",
       "      <td>-1.348978</td>\n",
       "      <td>2.097060</td>\n",
       "      <td>3.210526</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>浙AB926K</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>0.476190</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>0.095238</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>-7.187497</td>\n",
       "      <td>2.516611</td>\n",
       "      <td>4.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   CAR_NUM        F1        F2        O1        D1        O2        D2  \\\n",
       "0  浙A837YS  0.428571  1.000000  0.476190  0.476190  0.380952  0.238095   \n",
       "1  浙AR911W  0.809524  1.000000  0.857143  0.809524  0.666667  0.714286   \n",
       "2  浙AJ183G  0.047619  0.380952  0.095238  0.142857  0.047619  0.047619   \n",
       "3  浙A916KS  0.285714  1.000000  0.190476  0.142857  0.380952  0.333333   \n",
       "4  浙AB926K  0.142857  0.476190  0.142857  0.095238  0.047619  0.047619   \n",
       "\n",
       "         FS    STD_FD    AVG_FD  \n",
       "0 -6.986293  1.417930  3.700000  \n",
       "1  0.630876  3.113023  6.090909  \n",
       "2 -1.105313  0.547723  1.600000  \n",
       "3 -1.348978  2.097060  3.210526  \n",
       "4 -7.187497  2.516611  4.000000  "
      ]
     },
     "execution_count": 118,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# see the data\n",
    "df_feat.head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>F1</th>\n",
       "      <th>F2</th>\n",
       "      <th>O1</th>\n",
       "      <th>D1</th>\n",
       "      <th>O2</th>\n",
       "      <th>D2</th>\n",
       "      <th>FS</th>\n",
       "      <th>STD_FD</th>\n",
       "      <th>AVG_FD</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>565629.000000</td>\n",
       "      <td>565629.000000</td>\n",
       "      <td>565629.000000</td>\n",
       "      <td>565629.000000</td>\n",
       "      <td>565629.000000</td>\n",
       "      <td>565629.000000</td>\n",
       "      <td>5.656290e+05</td>\n",
       "      <td>565629.000000</td>\n",
       "      <td>565629.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>0.269822</td>\n",
       "      <td>0.606201</td>\n",
       "      <td>0.243693</td>\n",
       "      <td>0.222812</td>\n",
       "      <td>0.202714</td>\n",
       "      <td>0.214282</td>\n",
       "      <td>-7.489968e+02</td>\n",
       "      <td>3.129255</td>\n",
       "      <td>5.216787</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.259676</td>\n",
       "      <td>0.288787</td>\n",
       "      <td>0.235685</td>\n",
       "      <td>0.228191</td>\n",
       "      <td>0.202253</td>\n",
       "      <td>0.204485</td>\n",
       "      <td>1.227174e+05</td>\n",
       "      <td>3.057755</td>\n",
       "      <td>5.396728</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>-6.478347e+07</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.380952</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>-1.965441e+00</td>\n",
       "      <td>1.092906</td>\n",
       "      <td>2.545455</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>0.142857</td>\n",
       "      <td>0.666667</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>0.095238</td>\n",
       "      <td>0.095238</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>-1.131236e+00</td>\n",
       "      <td>2.554892</td>\n",
       "      <td>4.062500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>0.428571</td>\n",
       "      <td>0.857143</td>\n",
       "      <td>0.380952</td>\n",
       "      <td>0.333333</td>\n",
       "      <td>0.285714</td>\n",
       "      <td>0.333333</td>\n",
       "      <td>-4.098045e-01</td>\n",
       "      <td>4.226898</td>\n",
       "      <td>6.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>93.773080</td>\n",
       "      <td>92.238095</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  F1             F2             O1             D1  \\\n",
       "count  565629.000000  565629.000000  565629.000000  565629.000000   \n",
       "mean        0.269822       0.606201       0.243693       0.222812   \n",
       "std         0.259676       0.288787       0.235685       0.228191   \n",
       "min         0.047619       0.047619       0.047619       0.047619   \n",
       "25%         0.047619       0.380952       0.047619       0.047619   \n",
       "50%         0.142857       0.666667       0.142857       0.095238   \n",
       "75%         0.428571       0.857143       0.380952       0.333333   \n",
       "max         1.000000       1.000000       1.000000       1.000000   \n",
       "\n",
       "                  O2             D2            FS         STD_FD  \\\n",
       "count  565629.000000  565629.000000  5.656290e+05  565629.000000   \n",
       "mean        0.202714       0.214282 -7.489968e+02       3.129255   \n",
       "std         0.202253       0.204485  1.227174e+05       3.057755   \n",
       "min         0.047619       0.047619 -6.478347e+07       0.000000   \n",
       "25%         0.047619       0.047619 -1.965441e+00       1.092906   \n",
       "50%         0.095238       0.142857 -1.131236e+00       2.554892   \n",
       "75%         0.285714       0.333333 -4.098045e-01       4.226898   \n",
       "max         1.000000       1.000000  1.000000e+00      93.773080   \n",
       "\n",
       "              AVG_FD  \n",
       "count  565629.000000  \n",
       "mean        5.216787  \n",
       "std         5.396728  \n",
       "min         0.000000  \n",
       "25%         2.545455  \n",
       "50%         4.062500  \n",
       "75%         6.000000  \n",
       "max        92.238095  "
      ]
     },
     "execution_count": 119,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# have a rough understanding of the data\n",
    "df_feat.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x1080 with 9 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot the box plot, so that we can see the distribution of all the features.\n",
    "fig,((ax1, ax2, ax3), (ax4 ,ax5, ax6), (ax7, ax8 , ax9)) = plt.subplots(3, 3, sharex = False,figsize=(15, 15))\n",
    "# ax1 = plt.subplot(3, 3, 1,figsize=(10, 11))\n",
    "ax1.violinplot(dataset = df_feat[\"F1\"] , showmedians = True , showextrema = True  , points = 100)\n",
    "ax1.set_xlabel(r'$F_1$')\n",
    "# # ax2 = plt.subplot(3, 3, 2)\n",
    "ax2.violinplot(dataset = df_feat[\"F2\"] , showmedians = True , showextrema = True  , points = 100 )\n",
    "ax2.set_xlabel(r'$F_2$')\n",
    "ax3.violinplot(dataset = df_feat[\"O1\"] , showmedians = True , showextrema = True  , points = 100 )\n",
    "ax3.set_xlabel(r'$F_{O1}$')\n",
    "ax4.violinplot(dataset = df_feat[\"D1\"]  , showmedians = True , showextrema = True , points = 100 )\n",
    "ax4.set_xlabel(r'$F_{D1}$')\n",
    "ax5.violinplot(dataset = df_feat[\"O2\"]  , showmedians = True , showextrema = True  , points = 100)\n",
    "ax5.set_xlabel(r'$F_{O2}$')\n",
    "ax6.violinplot(dataset = df_feat[\"D2\"]  , showmedians = True , showextrema = True  , points = 100)\n",
    "ax6.set_xlabel(r'$F_{D2}$')\n",
    "ax7.violinplot(dataset = df_feat[\"FS\"]  , showmedians = True , showextrema = True , points = 100 )\n",
    "ax7.set_xlabel(r'$F_s$')\n",
    "ax8.violinplot(dataset = df_feat[\"STD_FD\"]  , showmedians = True , showextrema = True  , points = 100)\n",
    "ax8.set_xlabel(r'$\\sigma$')\n",
    "ax9.violinplot(dataset = df_feat[\"AVG_FD\"]  , showmedians = True , showextrema = True  , points = 100)\n",
    "ax9.set_xlabel('M')\n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "9个feature的分布情况，绘制出对应的直方图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x1080 with 9 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot the histogram, so that we can see the distribution of all the features.\n",
    "fig,((ax1, ax2, ax3), (ax4 ,ax5, ax6), (ax7, ax8 , ax9)) = plt.subplots(3, 3, sharex = False,figsize=(15, 15))\n",
    "# ax1 = plt.subplot(3, 3, 1,figsize=(10, 11))\n",
    "ax1.hist(x = df_feat[\"F1\"] , range = None)\n",
    "ax1.set_xlabel(r'$F_1$')\n",
    "# # ax2 = plt.subplot(3, 3, 2)\n",
    "ax2.hist(x = df_feat[\"F2\"] , range = None )\n",
    "ax2.set_xlabel(r'$F_2$')\n",
    "ax3.hist(x = df_feat[\"O1\"] , range = None )\n",
    "ax3.set_xlabel(r'$F_{O1}$')\n",
    "ax4.hist(x = df_feat[\"D1\"]  , range = None )\n",
    "ax4.set_xlabel(r'$F_{D1}$')\n",
    "ax5.hist(x = df_feat[\"O2\"]  , range = None)\n",
    "ax5.set_xlabel(r'$F_{O2}$')\n",
    "ax6.hist(x = df_feat[\"D2\"]  , range = None)\n",
    "ax6.set_xlabel(r'$F_{D2}$')\n",
    "ax7.hist(x = df_feat[\"FS\"]  , range = None)\n",
    "ax7.set_xlabel(r'$F_s$')\n",
    "ax8.hist(x = df_feat[\"STD_FD\"]  , range = None)\n",
    "ax8.set_xlabel(r'$\\sigma$')\n",
    "ax9.hist(x = df_feat[\"AVG_FD\"]   , range = None)\n",
    "ax9.set_xlabel('M')\n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Correlation of the 9 Features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>F1</th>\n",
       "      <th>F2</th>\n",
       "      <th>O1</th>\n",
       "      <th>D1</th>\n",
       "      <th>O2</th>\n",
       "      <th>D2</th>\n",
       "      <th>FS</th>\n",
       "      <th>STD_FD</th>\n",
       "      <th>AVG_FD</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>F1</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.680997</td>\n",
       "      <td>0.751806</td>\n",
       "      <td>0.721022</td>\n",
       "      <td>0.696230</td>\n",
       "      <td>0.702335</td>\n",
       "      <td>0.003472</td>\n",
       "      <td>0.213653</td>\n",
       "      <td>0.264318</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>F2</th>\n",
       "      <td>0.680997</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.616148</td>\n",
       "      <td>0.574667</td>\n",
       "      <td>0.567240</td>\n",
       "      <td>0.587423</td>\n",
       "      <td>0.001186</td>\n",
       "      <td>0.296724</td>\n",
       "      <td>0.229044</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>O1</th>\n",
       "      <td>0.751806</td>\n",
       "      <td>0.616148</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.910448</td>\n",
       "      <td>0.651170</td>\n",
       "      <td>0.653894</td>\n",
       "      <td>0.001683</td>\n",
       "      <td>-0.071783</td>\n",
       "      <td>-0.061854</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>D1</th>\n",
       "      <td>0.721022</td>\n",
       "      <td>0.574667</td>\n",
       "      <td>0.910448</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.684296</td>\n",
       "      <td>0.650834</td>\n",
       "      <td>0.001412</td>\n",
       "      <td>-0.130301</td>\n",
       "      <td>-0.117038</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>O2</th>\n",
       "      <td>0.696230</td>\n",
       "      <td>0.567240</td>\n",
       "      <td>0.651170</td>\n",
       "      <td>0.684296</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.877002</td>\n",
       "      <td>0.002289</td>\n",
       "      <td>-0.108380</td>\n",
       "      <td>-0.090759</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>D2</th>\n",
       "      <td>0.702335</td>\n",
       "      <td>0.587423</td>\n",
       "      <td>0.653894</td>\n",
       "      <td>0.650834</td>\n",
       "      <td>0.877002</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.002856</td>\n",
       "      <td>-0.085676</td>\n",
       "      <td>-0.077198</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FS</th>\n",
       "      <td>0.003472</td>\n",
       "      <td>0.001186</td>\n",
       "      <td>0.001683</td>\n",
       "      <td>0.001412</td>\n",
       "      <td>0.002289</td>\n",
       "      <td>0.002856</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.002340</td>\n",
       "      <td>0.002515</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>STD_FD</th>\n",
       "      <td>0.213653</td>\n",
       "      <td>0.296724</td>\n",
       "      <td>-0.071783</td>\n",
       "      <td>-0.130301</td>\n",
       "      <td>-0.108380</td>\n",
       "      <td>-0.085676</td>\n",
       "      <td>0.002340</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.809663</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AVG_FD</th>\n",
       "      <td>0.264318</td>\n",
       "      <td>0.229044</td>\n",
       "      <td>-0.061854</td>\n",
       "      <td>-0.117038</td>\n",
       "      <td>-0.090759</td>\n",
       "      <td>-0.077198</td>\n",
       "      <td>0.002515</td>\n",
       "      <td>0.809663</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              F1        F2        O1        D1        O2        D2        FS  \\\n",
       "F1      1.000000  0.680997  0.751806  0.721022  0.696230  0.702335  0.003472   \n",
       "F2      0.680997  1.000000  0.616148  0.574667  0.567240  0.587423  0.001186   \n",
       "O1      0.751806  0.616148  1.000000  0.910448  0.651170  0.653894  0.001683   \n",
       "D1      0.721022  0.574667  0.910448  1.000000  0.684296  0.650834  0.001412   \n",
       "O2      0.696230  0.567240  0.651170  0.684296  1.000000  0.877002  0.002289   \n",
       "D2      0.702335  0.587423  0.653894  0.650834  0.877002  1.000000  0.002856   \n",
       "FS      0.003472  0.001186  0.001683  0.001412  0.002289  0.002856  1.000000   \n",
       "STD_FD  0.213653  0.296724 -0.071783 -0.130301 -0.108380 -0.085676  0.002340   \n",
       "AVG_FD  0.264318  0.229044 -0.061854 -0.117038 -0.090759 -0.077198  0.002515   \n",
       "\n",
       "          STD_FD    AVG_FD  \n",
       "F1      0.213653  0.264318  \n",
       "F2      0.296724  0.229044  \n",
       "O1     -0.071783 -0.061854  \n",
       "D1     -0.130301 -0.117038  \n",
       "O2     -0.108380 -0.090759  \n",
       "D2     -0.085676 -0.077198  \n",
       "FS      0.002340  0.002515  \n",
       "STD_FD  1.000000  0.809663  \n",
       "AVG_FD  0.809663  1.000000  "
      ]
     },
     "execution_count": 122,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# get the pearson correlation\n",
    "df_feat.corr(method='pearson')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>F1</th>\n",
       "      <th>F2</th>\n",
       "      <th>O1</th>\n",
       "      <th>D1</th>\n",
       "      <th>O2</th>\n",
       "      <th>D2</th>\n",
       "      <th>FS</th>\n",
       "      <th>STD_FD</th>\n",
       "      <th>AVG_FD</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>F1</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.735326</td>\n",
       "      <td>0.768445</td>\n",
       "      <td>0.731859</td>\n",
       "      <td>0.691276</td>\n",
       "      <td>0.701924</td>\n",
       "      <td>0.304416</td>\n",
       "      <td>0.204231</td>\n",
       "      <td>0.167672</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>F2</th>\n",
       "      <td>0.735326</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.658295</td>\n",
       "      <td>0.613270</td>\n",
       "      <td>0.637908</td>\n",
       "      <td>0.649494</td>\n",
       "      <td>0.135183</td>\n",
       "      <td>0.332355</td>\n",
       "      <td>0.228133</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>O1</th>\n",
       "      <td>0.768445</td>\n",
       "      <td>0.658295</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.897545</td>\n",
       "      <td>0.608786</td>\n",
       "      <td>0.615180</td>\n",
       "      <td>0.285866</td>\n",
       "      <td>0.027215</td>\n",
       "      <td>-0.010299</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>D1</th>\n",
       "      <td>0.731859</td>\n",
       "      <td>0.613270</td>\n",
       "      <td>0.897545</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.626116</td>\n",
       "      <td>0.609907</td>\n",
       "      <td>0.289841</td>\n",
       "      <td>-0.047100</td>\n",
       "      <td>-0.082101</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>O2</th>\n",
       "      <td>0.691276</td>\n",
       "      <td>0.637908</td>\n",
       "      <td>0.608786</td>\n",
       "      <td>0.626116</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.853231</td>\n",
       "      <td>0.265987</td>\n",
       "      <td>-0.007619</td>\n",
       "      <td>-0.051379</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>D2</th>\n",
       "      <td>0.701924</td>\n",
       "      <td>0.649494</td>\n",
       "      <td>0.615180</td>\n",
       "      <td>0.609907</td>\n",
       "      <td>0.853231</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.278005</td>\n",
       "      <td>0.030190</td>\n",
       "      <td>-0.011384</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FS</th>\n",
       "      <td>0.304416</td>\n",
       "      <td>0.135183</td>\n",
       "      <td>0.285866</td>\n",
       "      <td>0.289841</td>\n",
       "      <td>0.265987</td>\n",
       "      <td>0.278005</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.027650</td>\n",
       "      <td>0.004232</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>STD_FD</th>\n",
       "      <td>0.204231</td>\n",
       "      <td>0.332355</td>\n",
       "      <td>0.027215</td>\n",
       "      <td>-0.047100</td>\n",
       "      <td>-0.007619</td>\n",
       "      <td>0.030190</td>\n",
       "      <td>-0.027650</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.780579</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AVG_FD</th>\n",
       "      <td>0.167672</td>\n",
       "      <td>0.228133</td>\n",
       "      <td>-0.010299</td>\n",
       "      <td>-0.082101</td>\n",
       "      <td>-0.051379</td>\n",
       "      <td>-0.011384</td>\n",
       "      <td>0.004232</td>\n",
       "      <td>0.780579</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              F1        F2        O1        D1        O2        D2        FS  \\\n",
       "F1      1.000000  0.735326  0.768445  0.731859  0.691276  0.701924  0.304416   \n",
       "F2      0.735326  1.000000  0.658295  0.613270  0.637908  0.649494  0.135183   \n",
       "O1      0.768445  0.658295  1.000000  0.897545  0.608786  0.615180  0.285866   \n",
       "D1      0.731859  0.613270  0.897545  1.000000  0.626116  0.609907  0.289841   \n",
       "O2      0.691276  0.637908  0.608786  0.626116  1.000000  0.853231  0.265987   \n",
       "D2      0.701924  0.649494  0.615180  0.609907  0.853231  1.000000  0.278005   \n",
       "FS      0.304416  0.135183  0.285866  0.289841  0.265987  0.278005  1.000000   \n",
       "STD_FD  0.204231  0.332355  0.027215 -0.047100 -0.007619  0.030190 -0.027650   \n",
       "AVG_FD  0.167672  0.228133 -0.010299 -0.082101 -0.051379 -0.011384  0.004232   \n",
       "\n",
       "          STD_FD    AVG_FD  \n",
       "F1      0.204231  0.167672  \n",
       "F2      0.332355  0.228133  \n",
       "O1      0.027215 -0.010299  \n",
       "D1     -0.047100 -0.082101  \n",
       "O2     -0.007619 -0.051379  \n",
       "D2      0.030190 -0.011384  \n",
       "FS     -0.027650  0.004232  \n",
       "STD_FD  1.000000  0.780579  \n",
       "AVG_FD  0.780579  1.000000  "
      ]
     },
     "execution_count": 123,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# get the spearnman correlation\n",
    "df_feat.corr(method='spearman')  # 斯皮尔曼秩相关系数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SpearmanrResult(correlation=array([[ 1.        ,  0.73925367,  0.77067914,  0.73310411,  0.69316298,\n",
       "         0.70166733,  0.28557113,  0.17632803,  0.13856577],\n",
       "       [ 0.73925367,  1.        ,  0.65277503,  0.60731601,  0.63103896,\n",
       "         0.63996803,  0.13161508,  0.28101875,  0.17131488],\n",
       "       [ 0.77067914,  0.65277503,  1.        ,  0.89393383,  0.62409909,\n",
       "         0.62994588,  0.29265406, -0.01071805, -0.04904387],\n",
       "       [ 0.73310411,  0.60731601,  0.89393383,  1.        ,  0.64457766,\n",
       "         0.62498854,  0.30389521, -0.08506629, -0.12054738],\n",
       "       [ 0.69316298,  0.63103896,  0.62409909,  0.64457766,  1.        ,\n",
       "         0.84652423,  0.27872534, -0.04852942, -0.09195527],\n",
       "       [ 0.70166733,  0.63996803,  0.62994588,  0.62498854,  0.84652423,\n",
       "         1.        ,  0.28850217, -0.01308571, -0.05410525],\n",
       "       [ 0.28557113,  0.13161508,  0.29265406,  0.30389521,  0.27872534,\n",
       "         0.28850217,  1.        , -0.05836032, -0.02377757],\n",
       "       [ 0.17632803,  0.28101875, -0.01071805, -0.08506629, -0.04852942,\n",
       "        -0.01308571, -0.05836032,  1.        ,  0.757713  ],\n",
       "       [ 0.13856577,  0.17131488, -0.04904387, -0.12054738, -0.09195527,\n",
       "        -0.05410525, -0.02377757,  0.757713  ,  1.        ]]), pvalue=array([[0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000],\n",
       "       [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000],\n",
       "       [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 1.32126472e-013, 6.92239936e-252],\n",
       "       [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000],\n",
       "       [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 1.14396395e-246, 0.00000000e+000],\n",
       "       [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 1.57076828e-019, 3.60409842e-306],\n",
       "       [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 1.21838677e-060],\n",
       "       [0.00000000e+000, 0.00000000e+000, 1.32126472e-013,\n",
       "        0.00000000e+000, 1.14396395e-246, 1.57076828e-019,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000],\n",
       "       [0.00000000e+000, 0.00000000e+000, 6.92239936e-252,\n",
       "        0.00000000e+000, 0.00000000e+000, 3.60409842e-306,\n",
       "        1.21838677e-060, 0.00000000e+000, 0.00000000e+000]]))"
      ]
     },
     "execution_count": 124,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# get the significance of the spearman correlation\n",
    "spearmanresult = stats.spearmanr(df_feat_copy[['F1' , 'F2' , 'O1' , 'D1' , 'O2' , 'D2' , 'FS' , 'STD_FD' , 'AVG_FD']].values)\n",
    "spearmanresult"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.739254</td>\n",
       "      <td>0.770679</td>\n",
       "      <td>0.733104</td>\n",
       "      <td>0.693163</td>\n",
       "      <td>0.701667</td>\n",
       "      <td>0.285571</td>\n",
       "      <td>0.176328</td>\n",
       "      <td>0.138566</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.739254</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.652775</td>\n",
       "      <td>0.607316</td>\n",
       "      <td>0.631039</td>\n",
       "      <td>0.639968</td>\n",
       "      <td>0.131615</td>\n",
       "      <td>0.281019</td>\n",
       "      <td>0.171315</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.770679</td>\n",
       "      <td>0.652775</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.893934</td>\n",
       "      <td>0.624099</td>\n",
       "      <td>0.629946</td>\n",
       "      <td>0.292654</td>\n",
       "      <td>-0.010718</td>\n",
       "      <td>-0.049044</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.733104</td>\n",
       "      <td>0.607316</td>\n",
       "      <td>0.893934</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.644578</td>\n",
       "      <td>0.624989</td>\n",
       "      <td>0.303895</td>\n",
       "      <td>-0.085066</td>\n",
       "      <td>-0.120547</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.693163</td>\n",
       "      <td>0.631039</td>\n",
       "      <td>0.624099</td>\n",
       "      <td>0.644578</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.846524</td>\n",
       "      <td>0.278725</td>\n",
       "      <td>-0.048529</td>\n",
       "      <td>-0.091955</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.701667</td>\n",
       "      <td>0.639968</td>\n",
       "      <td>0.629946</td>\n",
       "      <td>0.624989</td>\n",
       "      <td>0.846524</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.288502</td>\n",
       "      <td>-0.013086</td>\n",
       "      <td>-0.054105</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.285571</td>\n",
       "      <td>0.131615</td>\n",
       "      <td>0.292654</td>\n",
       "      <td>0.303895</td>\n",
       "      <td>0.278725</td>\n",
       "      <td>0.288502</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.058360</td>\n",
       "      <td>-0.023778</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.176328</td>\n",
       "      <td>0.281019</td>\n",
       "      <td>-0.010718</td>\n",
       "      <td>-0.085066</td>\n",
       "      <td>-0.048529</td>\n",
       "      <td>-0.013086</td>\n",
       "      <td>-0.058360</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.757713</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.138566</td>\n",
       "      <td>0.171315</td>\n",
       "      <td>-0.049044</td>\n",
       "      <td>-0.120547</td>\n",
       "      <td>-0.091955</td>\n",
       "      <td>-0.054105</td>\n",
       "      <td>-0.023778</td>\n",
       "      <td>0.757713</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          0         1         2         3         4         5         6  \\\n",
       "0  1.000000  0.739254  0.770679  0.733104  0.693163  0.701667  0.285571   \n",
       "1  0.739254  1.000000  0.652775  0.607316  0.631039  0.639968  0.131615   \n",
       "2  0.770679  0.652775  1.000000  0.893934  0.624099  0.629946  0.292654   \n",
       "3  0.733104  0.607316  0.893934  1.000000  0.644578  0.624989  0.303895   \n",
       "4  0.693163  0.631039  0.624099  0.644578  1.000000  0.846524  0.278725   \n",
       "5  0.701667  0.639968  0.629946  0.624989  0.846524  1.000000  0.288502   \n",
       "6  0.285571  0.131615  0.292654  0.303895  0.278725  0.288502  1.000000   \n",
       "7  0.176328  0.281019 -0.010718 -0.085066 -0.048529 -0.013086 -0.058360   \n",
       "8  0.138566  0.171315 -0.049044 -0.120547 -0.091955 -0.054105 -0.023778   \n",
       "\n",
       "          7         8  \n",
       "0  0.176328  0.138566  \n",
       "1  0.281019  0.171315  \n",
       "2 -0.010718 -0.049044  \n",
       "3 -0.085066 -0.120547  \n",
       "4 -0.048529 -0.091955  \n",
       "5 -0.013086 -0.054105  \n",
       "6 -0.058360 -0.023778  \n",
       "7  1.000000  0.757713  \n",
       "8  0.757713  1.000000  "
      ]
     },
     "execution_count": 125,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# display the spearman correlation of 9 features using the stats package\n",
    "speacorr = pd.DataFrame(spearmanresult[0])\n",
    "speacorr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>1.321265e-13</td>\n",
       "      <td>6.922399e-252</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>1.143964e-246</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>1.570768e-19</td>\n",
       "      <td>3.604098e-306</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>1.218387e-60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.321265e-13</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.143964e-246</td>\n",
       "      <td>1.570768e-19</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>6.922399e-252</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>3.604098e-306</td>\n",
       "      <td>1.218387e-60</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     0    1              2    3              4              5             6  \\\n",
       "0  0.0  0.0   0.000000e+00  0.0   0.000000e+00   0.000000e+00  0.000000e+00   \n",
       "1  0.0  0.0   0.000000e+00  0.0   0.000000e+00   0.000000e+00  0.000000e+00   \n",
       "2  0.0  0.0   0.000000e+00  0.0   0.000000e+00   0.000000e+00  0.000000e+00   \n",
       "3  0.0  0.0   0.000000e+00  0.0   0.000000e+00   0.000000e+00  0.000000e+00   \n",
       "4  0.0  0.0   0.000000e+00  0.0   0.000000e+00   0.000000e+00  0.000000e+00   \n",
       "5  0.0  0.0   0.000000e+00  0.0   0.000000e+00   0.000000e+00  0.000000e+00   \n",
       "6  0.0  0.0   0.000000e+00  0.0   0.000000e+00   0.000000e+00  0.000000e+00   \n",
       "7  0.0  0.0   1.321265e-13  0.0  1.143964e-246   1.570768e-19  0.000000e+00   \n",
       "8  0.0  0.0  6.922399e-252  0.0   0.000000e+00  3.604098e-306  1.218387e-60   \n",
       "\n",
       "               7              8  \n",
       "0   0.000000e+00   0.000000e+00  \n",
       "1   0.000000e+00   0.000000e+00  \n",
       "2   1.321265e-13  6.922399e-252  \n",
       "3   0.000000e+00   0.000000e+00  \n",
       "4  1.143964e-246   0.000000e+00  \n",
       "5   1.570768e-19  3.604098e-306  \n",
       "6   0.000000e+00   1.218387e-60  \n",
       "7   0.000000e+00   0.000000e+00  \n",
       "8   0.000000e+00   0.000000e+00  "
      ]
     },
     "execution_count": 126,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# display the spearman correlation's significance \n",
    "speasig = pd.DataFrame(spearmanresult[1])\n",
    "speasig"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Outliers detection and analysis\n",
    "In this research, i find $F_s,\\sigma ,M$ have outliers, so next, i will deal with these three features to delete the outliers. And this will be ok because if $F_s$ is too small, which means the vehicle's OD in the morning peak and evening peak are pretty different, so the vehicle can not be the commuting vehicles.If $\\sigma$ is way big, which means the vehicle's behibour in the offpeak hour is pretty different, which means the vehicle can not be the commuting vehicle. If the M is pretty big, which means the vehicle in the off peak hour usually travel in the road network, so it also can not be the commuting vehicle."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>CAR_NUM</th>\n",
       "      <th>F1</th>\n",
       "      <th>F2</th>\n",
       "      <th>O1</th>\n",
       "      <th>D1</th>\n",
       "      <th>O2</th>\n",
       "      <th>D2</th>\n",
       "      <th>FS</th>\n",
       "      <th>STD_FD</th>\n",
       "      <th>AVG_FD</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>浙A837YS</td>\n",
       "      <td>0.428571</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.476190</td>\n",
       "      <td>0.476190</td>\n",
       "      <td>0.380952</td>\n",
       "      <td>0.238095</td>\n",
       "      <td>-6.986293</td>\n",
       "      <td>1.417930</td>\n",
       "      <td>3.700000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>浙AR911W</td>\n",
       "      <td>0.809524</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.857143</td>\n",
       "      <td>0.809524</td>\n",
       "      <td>0.666667</td>\n",
       "      <td>0.714286</td>\n",
       "      <td>0.630876</td>\n",
       "      <td>3.113023</td>\n",
       "      <td>6.090909</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>浙AJ183G</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.380952</td>\n",
       "      <td>0.095238</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>-1.105313</td>\n",
       "      <td>0.547723</td>\n",
       "      <td>1.600000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>浙A916KS</td>\n",
       "      <td>0.285714</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.190476</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>0.380952</td>\n",
       "      <td>0.333333</td>\n",
       "      <td>-1.348978</td>\n",
       "      <td>2.097060</td>\n",
       "      <td>3.210526</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>浙AB926K</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>0.476190</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>0.095238</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>0.047619</td>\n",
       "      <td>-7.187497</td>\n",
       "      <td>2.516611</td>\n",
       "      <td>4.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   CAR_NUM        F1        F2        O1        D1        O2        D2  \\\n",
       "0  浙A837YS  0.428571  1.000000  0.476190  0.476190  0.380952  0.238095   \n",
       "1  浙AR911W  0.809524  1.000000  0.857143  0.809524  0.666667  0.714286   \n",
       "2  浙AJ183G  0.047619  0.380952  0.095238  0.142857  0.047619  0.047619   \n",
       "3  浙A916KS  0.285714  1.000000  0.190476  0.142857  0.380952  0.333333   \n",
       "4  浙AB926K  0.142857  0.476190  0.142857  0.095238  0.047619  0.047619   \n",
       "\n",
       "         FS    STD_FD    AVG_FD  \n",
       "0 -6.986293  1.417930  3.700000  \n",
       "1  0.630876  3.113023  6.090909  \n",
       "2 -1.105313  0.547723  1.600000  \n",
       "3 -1.348978  2.097060  3.210526  \n",
       "4 -7.187497  2.516611  4.000000  "
      ]
     },
     "execution_count": 127,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_feat.head(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**deal with the feature $F_s$**\n",
    "\n",
    "here i use the numeric outliers detection. The detail can be found in the paper."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "IQR = abs(np.percentile(df_feat['FS'] , 75) - np.percentile(df_feat['FS'] , 25))\n",
    "lowerbound = np.percentile(df_feat['FS'] , 25) - 1.5 * IQR\n",
    "df_feat_copy = copy.deepcopy(df_feat)\n",
    "df_feat_copy[df_feat_copy['FS'] < lowerbound] = None\n",
    "df_feat_copy.dropna(inplace = True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**deal with the feature $\\sigma$** "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3.133991575055629\n"
     ]
    }
   ],
   "source": [
    "IQR = abs(np.percentile(df_feat['STD_FD'] , 75) - np.percentile(df_feat['STD_FD'] , 25))\n",
    "upperbound = np.percentile(df_feat['STD_FD'] , 75) + 1.5 * IQR\n",
    "print(IQR)\n",
    "df_feat_copy[df_feat_copy['STD_FD'] > upperbound] = None\n",
    "df_feat_copy.dropna(inplace = True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**deal with the feature $M$**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [],
   "source": [
    "IQR = abs(np.percentile(df_feat['AVG_FD'] , 75) - np.percentile(df_feat['AVG_FD'] , 25))\n",
    "upperbound = np.percentile(df_feat['AVG_FD'] , 75) + 1.5 * IQR\n",
    "df_feat_copy[df_feat_copy['AVG_FD'] > upperbound] = None\n",
    "df_feat_copy.dropna(inplace = True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Plot the distribution of the features that are after outliers deleting**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x1080 with 9 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot the histogram, so that we can see the distribution of all the features.\n",
    "fig,((ax1, ax2, ax3), (ax4 ,ax5, ax6), (ax7, ax8 , ax9)) = plt.subplots(3, 3, sharex = False,figsize=(15, 15))\n",
    "# ax1 = plt.subplot(3, 3, 1,figsize=(10, 11))\n",
    "ax1.hist(x = df_feat_copy[\"F1\"] , range = None)\n",
    "ax1.set_xlabel(r'$F_1$')\n",
    "# # ax2 = plt.subplot(3, 3, 2)\n",
    "ax2.hist(x = df_feat_copy[\"F2\"] , range = None )\n",
    "ax2.set_xlabel(r'$F_2$')\n",
    "ax3.hist(x = df_feat_copy[\"O1\"] , range = None )\n",
    "ax3.set_xlabel(r'$F_{O1}$')\n",
    "ax4.hist(x = df_feat_copy[\"D1\"]  , range = None )\n",
    "ax4.set_xlabel(r'$F_{D1}$')\n",
    "ax5.hist(x = df_feat_copy[\"O2\"]  , range = None)\n",
    "ax5.set_xlabel(r'$F_{O2}$')\n",
    "ax6.hist(x = df_feat_copy[\"D2\"]  , range = None)\n",
    "ax6.set_xlabel(r'$F_{D2}$')\n",
    "ax7.hist(x = df_feat_copy[\"FS\"]  , range = None)\n",
    "ax7.set_xlabel(r'$F_s$')\n",
    "ax8.hist(x = df_feat_copy[\"STD_FD\"]  , range = None)\n",
    "ax8.set_xlabel(r'$\\sigma$')\n",
    "ax9.hist(x = df_feat_copy[\"AVG_FD\"]   , range = None)\n",
    "ax9.set_xlabel('M')\n",
    "# plt.savefig('子样本车辆分布情况_new.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**把得到的全样本经过处理后的feature存为csv保存在本地，之后的分析都基于这个处理后的feature的透视表展开**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Correlation of the 9 Features that are after processing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>F1</th>\n",
       "      <th>F2</th>\n",
       "      <th>O1</th>\n",
       "      <th>D1</th>\n",
       "      <th>O2</th>\n",
       "      <th>D2</th>\n",
       "      <th>FS</th>\n",
       "      <th>STD_FD</th>\n",
       "      <th>AVG_FD</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>F1</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.732246</td>\n",
       "      <td>0.813334</td>\n",
       "      <td>0.799006</td>\n",
       "      <td>0.751346</td>\n",
       "      <td>0.758314</td>\n",
       "      <td>0.317060</td>\n",
       "      <td>0.133279</td>\n",
       "      <td>0.097966</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>F2</th>\n",
       "      <td>0.732246</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.697953</td>\n",
       "      <td>0.669109</td>\n",
       "      <td>0.679251</td>\n",
       "      <td>0.692499</td>\n",
       "      <td>0.147171</td>\n",
       "      <td>0.288341</td>\n",
       "      <td>0.183868</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>O1</th>\n",
       "      <td>0.813334</td>\n",
       "      <td>0.697953</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.909807</td>\n",
       "      <td>0.641574</td>\n",
       "      <td>0.644286</td>\n",
       "      <td>0.290698</td>\n",
       "      <td>0.045312</td>\n",
       "      <td>0.012891</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>D1</th>\n",
       "      <td>0.799006</td>\n",
       "      <td>0.669109</td>\n",
       "      <td>0.909807</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.658641</td>\n",
       "      <td>0.638371</td>\n",
       "      <td>0.301625</td>\n",
       "      <td>-0.010662</td>\n",
       "      <td>-0.040328</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>O2</th>\n",
       "      <td>0.751346</td>\n",
       "      <td>0.679251</td>\n",
       "      <td>0.641574</td>\n",
       "      <td>0.658641</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.867017</td>\n",
       "      <td>0.282688</td>\n",
       "      <td>0.011349</td>\n",
       "      <td>-0.025980</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>D2</th>\n",
       "      <td>0.758314</td>\n",
       "      <td>0.692499</td>\n",
       "      <td>0.644286</td>\n",
       "      <td>0.638371</td>\n",
       "      <td>0.867017</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.285390</td>\n",
       "      <td>0.053633</td>\n",
       "      <td>0.018922</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FS</th>\n",
       "      <td>0.317060</td>\n",
       "      <td>0.147171</td>\n",
       "      <td>0.290698</td>\n",
       "      <td>0.301625</td>\n",
       "      <td>0.282688</td>\n",
       "      <td>0.285390</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.033209</td>\n",
       "      <td>0.004187</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>STD_FD</th>\n",
       "      <td>0.133279</td>\n",
       "      <td>0.288341</td>\n",
       "      <td>0.045312</td>\n",
       "      <td>-0.010662</td>\n",
       "      <td>0.011349</td>\n",
       "      <td>0.053633</td>\n",
       "      <td>-0.033209</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.750704</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AVG_FD</th>\n",
       "      <td>0.097966</td>\n",
       "      <td>0.183868</td>\n",
       "      <td>0.012891</td>\n",
       "      <td>-0.040328</td>\n",
       "      <td>-0.025980</td>\n",
       "      <td>0.018922</td>\n",
       "      <td>0.004187</td>\n",
       "      <td>0.750704</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              F1        F2        O1        D1        O2        D2        FS  \\\n",
       "F1      1.000000  0.732246  0.813334  0.799006  0.751346  0.758314  0.317060   \n",
       "F2      0.732246  1.000000  0.697953  0.669109  0.679251  0.692499  0.147171   \n",
       "O1      0.813334  0.697953  1.000000  0.909807  0.641574  0.644286  0.290698   \n",
       "D1      0.799006  0.669109  0.909807  1.000000  0.658641  0.638371  0.301625   \n",
       "O2      0.751346  0.679251  0.641574  0.658641  1.000000  0.867017  0.282688   \n",
       "D2      0.758314  0.692499  0.644286  0.638371  0.867017  1.000000  0.285390   \n",
       "FS      0.317060  0.147171  0.290698  0.301625  0.282688  0.285390  1.000000   \n",
       "STD_FD  0.133279  0.288341  0.045312 -0.010662  0.011349  0.053633 -0.033209   \n",
       "AVG_FD  0.097966  0.183868  0.012891 -0.040328 -0.025980  0.018922  0.004187   \n",
       "\n",
       "          STD_FD    AVG_FD  \n",
       "F1      0.133279  0.097966  \n",
       "F2      0.288341  0.183868  \n",
       "O1      0.045312  0.012891  \n",
       "D1     -0.010662 -0.040328  \n",
       "O2      0.011349 -0.025980  \n",
       "D2      0.053633  0.018922  \n",
       "FS     -0.033209  0.004187  \n",
       "STD_FD  1.000000  0.750704  \n",
       "AVG_FD  0.750704  1.000000  "
      ]
     },
     "execution_count": 132,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# get the spearnman correlation\n",
    "df_feat_copy.corr(method='spearman')  # 斯皮尔曼秩相关系数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SpearmanrResult(correlation=array([[ 1.        ,  0.73224574,  0.81333397,  0.79900618,  0.7513458 ,\n",
       "         0.75831418,  0.31705984,  0.13327895,  0.09796587],\n",
       "       [ 0.73224574,  1.        ,  0.69795262,  0.6691086 ,  0.67925115,\n",
       "         0.69249924,  0.14717143,  0.28834132,  0.18386773],\n",
       "       [ 0.81333397,  0.69795262,  1.        ,  0.90980748,  0.64157419,\n",
       "         0.64428648,  0.29069788,  0.04531167,  0.01289075],\n",
       "       [ 0.79900618,  0.6691086 ,  0.90980748,  1.        ,  0.65864072,\n",
       "         0.63837116,  0.30162508, -0.01066201, -0.04032827],\n",
       "       [ 0.7513458 ,  0.67925115,  0.64157419,  0.65864072,  1.        ,\n",
       "         0.86701739,  0.28268802,  0.01134864, -0.02597974],\n",
       "       [ 0.75831418,  0.69249924,  0.64428648,  0.63837116,  0.86701739,\n",
       "         1.        ,  0.28538989,  0.05363315,  0.01892226],\n",
       "       [ 0.31705984,  0.14717143,  0.29069788,  0.30162508,  0.28268802,\n",
       "         0.28538989,  1.        , -0.03320855,  0.004187  ],\n",
       "       [ 0.13327895,  0.28834132,  0.04531167, -0.01066201,  0.01134864,\n",
       "         0.05363315, -0.03320855,  1.        ,  0.75070355],\n",
       "       [ 0.09796587,  0.18386773,  0.01289075, -0.04032827, -0.02597974,\n",
       "         0.01892226,  0.004187  ,  0.75070355,  1.        ]]), pvalue=array([[0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000],\n",
       "       [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000],\n",
       "       [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 1.25173017e-208, 1.86789655e-018],\n",
       "       [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 4.18388681e-013, 1.17152500e-165],\n",
       "       [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 1.19690624e-014, 7.52685075e-070],\n",
       "       [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 1.46943010e-291, 6.93047675e-038],\n",
       "       [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 0.00000000e+000, 0.00000000e+000,\n",
       "        0.00000000e+000, 6.05210761e-113, 4.41578602e-003],\n",
       "       [0.00000000e+000, 0.00000000e+000, 1.25173017e-208,\n",
       "        4.18388681e-013, 1.19690624e-014, 1.46943010e-291,\n",
       "        6.05210761e-113, 0.00000000e+000, 0.00000000e+000],\n",
       "       [0.00000000e+000, 0.00000000e+000, 1.86789655e-018,\n",
       "        1.17152500e-165, 7.52685075e-070, 6.93047675e-038,\n",
       "        4.41578602e-003, 0.00000000e+000, 0.00000000e+000]]))"
      ]
     },
     "execution_count": 133,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# get the significance of the spearman correlation\n",
    "spearmanresult = stats.spearmanr(df_feat_copy[['F1' , 'F2' , 'O1' , 'D1' , 'O2' , 'D2' , 'FS' , 'STD_FD' , 'AVG_FD']].values)\n",
    "spearmanresult"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.732246</td>\n",
       "      <td>0.813334</td>\n",
       "      <td>0.799006</td>\n",
       "      <td>0.751346</td>\n",
       "      <td>0.758314</td>\n",
       "      <td>0.317060</td>\n",
       "      <td>0.133279</td>\n",
       "      <td>0.097966</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.732246</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.697953</td>\n",
       "      <td>0.669109</td>\n",
       "      <td>0.679251</td>\n",
       "      <td>0.692499</td>\n",
       "      <td>0.147171</td>\n",
       "      <td>0.288341</td>\n",
       "      <td>0.183868</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.813334</td>\n",
       "      <td>0.697953</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.909807</td>\n",
       "      <td>0.641574</td>\n",
       "      <td>0.644286</td>\n",
       "      <td>0.290698</td>\n",
       "      <td>0.045312</td>\n",
       "      <td>0.012891</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.799006</td>\n",
       "      <td>0.669109</td>\n",
       "      <td>0.909807</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.658641</td>\n",
       "      <td>0.638371</td>\n",
       "      <td>0.301625</td>\n",
       "      <td>-0.010662</td>\n",
       "      <td>-0.040328</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.751346</td>\n",
       "      <td>0.679251</td>\n",
       "      <td>0.641574</td>\n",
       "      <td>0.658641</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.867017</td>\n",
       "      <td>0.282688</td>\n",
       "      <td>0.011349</td>\n",
       "      <td>-0.025980</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.758314</td>\n",
       "      <td>0.692499</td>\n",
       "      <td>0.644286</td>\n",
       "      <td>0.638371</td>\n",
       "      <td>0.867017</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.285390</td>\n",
       "      <td>0.053633</td>\n",
       "      <td>0.018922</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.317060</td>\n",
       "      <td>0.147171</td>\n",
       "      <td>0.290698</td>\n",
       "      <td>0.301625</td>\n",
       "      <td>0.282688</td>\n",
       "      <td>0.285390</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>-0.033209</td>\n",
       "      <td>0.004187</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.133279</td>\n",
       "      <td>0.288341</td>\n",
       "      <td>0.045312</td>\n",
       "      <td>-0.010662</td>\n",
       "      <td>0.011349</td>\n",
       "      <td>0.053633</td>\n",
       "      <td>-0.033209</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.750704</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.097966</td>\n",
       "      <td>0.183868</td>\n",
       "      <td>0.012891</td>\n",
       "      <td>-0.040328</td>\n",
       "      <td>-0.025980</td>\n",
       "      <td>0.018922</td>\n",
       "      <td>0.004187</td>\n",
       "      <td>0.750704</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          0         1         2         3         4         5         6  \\\n",
       "0  1.000000  0.732246  0.813334  0.799006  0.751346  0.758314  0.317060   \n",
       "1  0.732246  1.000000  0.697953  0.669109  0.679251  0.692499  0.147171   \n",
       "2  0.813334  0.697953  1.000000  0.909807  0.641574  0.644286  0.290698   \n",
       "3  0.799006  0.669109  0.909807  1.000000  0.658641  0.638371  0.301625   \n",
       "4  0.751346  0.679251  0.641574  0.658641  1.000000  0.867017  0.282688   \n",
       "5  0.758314  0.692499  0.644286  0.638371  0.867017  1.000000  0.285390   \n",
       "6  0.317060  0.147171  0.290698  0.301625  0.282688  0.285390  1.000000   \n",
       "7  0.133279  0.288341  0.045312 -0.010662  0.011349  0.053633 -0.033209   \n",
       "8  0.097966  0.183868  0.012891 -0.040328 -0.025980  0.018922  0.004187   \n",
       "\n",
       "          7         8  \n",
       "0  0.133279  0.097966  \n",
       "1  0.288341  0.183868  \n",
       "2  0.045312  0.012891  \n",
       "3 -0.010662 -0.040328  \n",
       "4  0.011349 -0.025980  \n",
       "5  0.053633  0.018922  \n",
       "6 -0.033209  0.004187  \n",
       "7  1.000000  0.750704  \n",
       "8  0.750704  1.000000  "
      ]
     },
     "execution_count": 134,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# display the spearman correlation of 9 features using the stats package\n",
    "speacorr = pd.DataFrame(spearmanresult[0])\n",
    "speacorr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>1.251730e-208</td>\n",
       "      <td>1.867897e-18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>4.183887e-13</td>\n",
       "      <td>1.171525e-165</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>1.196906e-14</td>\n",
       "      <td>7.526851e-70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>1.469430e-291</td>\n",
       "      <td>6.930477e-38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>6.052108e-113</td>\n",
       "      <td>4.415786e-03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.251730e-208</td>\n",
       "      <td>4.183887e-13</td>\n",
       "      <td>1.196906e-14</td>\n",
       "      <td>1.469430e-291</td>\n",
       "      <td>6.052108e-113</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.867897e-18</td>\n",
       "      <td>1.171525e-165</td>\n",
       "      <td>7.526851e-70</td>\n",
       "      <td>6.930477e-38</td>\n",
       "      <td>4.415786e-03</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     0    1              2              3             4              5  \\\n",
       "0  0.0  0.0   0.000000e+00   0.000000e+00  0.000000e+00   0.000000e+00   \n",
       "1  0.0  0.0   0.000000e+00   0.000000e+00  0.000000e+00   0.000000e+00   \n",
       "2  0.0  0.0   0.000000e+00   0.000000e+00  0.000000e+00   0.000000e+00   \n",
       "3  0.0  0.0   0.000000e+00   0.000000e+00  0.000000e+00   0.000000e+00   \n",
       "4  0.0  0.0   0.000000e+00   0.000000e+00  0.000000e+00   0.000000e+00   \n",
       "5  0.0  0.0   0.000000e+00   0.000000e+00  0.000000e+00   0.000000e+00   \n",
       "6  0.0  0.0   0.000000e+00   0.000000e+00  0.000000e+00   0.000000e+00   \n",
       "7  0.0  0.0  1.251730e-208   4.183887e-13  1.196906e-14  1.469430e-291   \n",
       "8  0.0  0.0   1.867897e-18  1.171525e-165  7.526851e-70   6.930477e-38   \n",
       "\n",
       "               6              7              8  \n",
       "0   0.000000e+00   0.000000e+00   0.000000e+00  \n",
       "1   0.000000e+00   0.000000e+00   0.000000e+00  \n",
       "2   0.000000e+00  1.251730e-208   1.867897e-18  \n",
       "3   0.000000e+00   4.183887e-13  1.171525e-165  \n",
       "4   0.000000e+00   1.196906e-14   7.526851e-70  \n",
       "5   0.000000e+00  1.469430e-291   6.930477e-38  \n",
       "6   0.000000e+00  6.052108e-113   4.415786e-03  \n",
       "7  6.052108e-113   0.000000e+00   0.000000e+00  \n",
       "8   4.415786e-03   0.000000e+00   0.000000e+00  "
      ]
     },
     "execution_count": 135,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# display the spearman correlation's significance \n",
    "speasig = pd.DataFrame(spearmanresult[1])\n",
    "speasig"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Save the data after processing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_feat_copy.to_csv(\"TotalSampleAfterProcessing.csv\" , encoding = 'gbk')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**至此关于通勤车模式识别的feature提取、预处理以及分析部分便已经全部结束了，接下来我将再开一个notebook，进行因子分析，以及后续的聚类，决策树模型等等**"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
